gpt4 book ai didi

python - 基于辅助系列从 pandas DataFrame 中进行选择

转载 作者:太空宇宙 更新时间:2023-11-03 15:31:50 25 4
gpt4 key购买 nike

我有一个系列:

ser = pd.Series(['a','b','c'])
df = pd.DataFrame([['c',1],['d',2],['a',3]], columns=['first', 'second'])

并且想要获取DataFrame:

   first  second
0 c 1
1 a 3

也就是说,我想说类似 df[df.first in ser.tolist()] 的内容,但考虑到 df.first 是一个 Series 而不是其中的一个元素。

最佳答案

选项 1
查询

df.query('first in @ser')

选项 2
isin

df[df['first'].isin(ser)]

两者产量

  first  second
0 c 1
2 a 3
<小时/>

时序引用

def query():
return df.query('first in @ser')

def isin():
return df[df['first'].isin(ser)]


results = pd.DataFrame(
index=pd.Index([10, 1000, 100000], name='group size'),
columns=pd.Index(['query', 'isin'], name='method'),
)

from timeit import timeit

for i in results.index:
df = pd.DataFrame(dict(first=np.random.randint(10, size=i)))
s = pd.Series(range(5))
for j in results.columns:
results.set_value(
i, j,
timeit(
'{}()'.format(j),
'from __main__ import {}, df, s'.format(j),
number=100
)
)

results.plot()

enter image description here

关于python - 基于辅助系列从 pandas DataFrame 中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42846144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com