gpt4 book ai didi

python - 使用索引和值过滤 Pandas 系列

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

是否有一种干净的方法来使用自定义函数来过滤 Pandas Series,该函数将索引和值作为输入?

这是一段代码,可以实现我想要做的事情:

series = pd.Series({"id5":88, "id3":40})
def custom(k,v):
if k=="id5":
return v>20
else:
return v>50

filtered_indexes = []
filtered_values = []
for k,v in series.iteritems():
if custom(k,v):
filtered_indexes.append(k)
filtered_values.append(v)
filtered_series = pd.Series(data=filtered_values, index=filtered_indexes)

我的问题是:使用类似的语法可以更清晰和/或更有效地实现同样的目标

series.filter(lambda x: custom(x.index, x.value))

最佳答案

有问题Series.apply have no accesses索引和DataFrame.filter未针对系列实现。

这是可能的,但需要创建DataFrame:

s = series[series.to_frame().apply(lambda x: custom(x.name, x), axis=1).squeeze()]
print (s)
id5 88
dtype: int64

或者使用 groupbyfiltration :

s = series.groupby(level=0).filter(lambda x: custom(x.name, x)[0])
print (s)
id5 88
dtype: int64

关于python - 使用索引和值过滤 Pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49446544/

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