gpt4 book ai didi

python - 按功能过滤 Pandas 索引

转载 作者:行者123 更新时间:2023-12-04 15:19:35 30 4
gpt4 key购买 nike

我想通过索引沿函数过滤 Pandas 数据框。我似乎找不到执行此操作的内置方式。
所以本质上,我有一个函数可以通过一些任意复杂的方式来确定是否应该包含特定的索引,我称之为 filter_func对于这个例子。我希望完全应用以下代码的作用,但应用于索引:

new_index = filter(filter_func, df.index)
并且只包含 filter_func 的值允许。索引也可以是任何类型。
这是数据操作的一个非常重要的因素,所以我想有一种内置的方式来执行这个操作。
预计到达时间:
我发现通过 bool 值列表对数据框进行索引会做我想要的,但仍然需要两倍的索引空间才能应用过滤器。所以我的问题仍然存在,如果有一种不需要两倍空间的内置方法。
下面是一个例子:
import pandas as pd
df = pd.DataFrame({"value":[12,34,2,23,6,23,7,2,35,657,1,324]})

def filter_func(ind, n=0):
if n > 200: return False
if ind % 79 == 0: return True
return filter_func(ind+ind-1, n+1)

new_index = filter(filter_func, df)
我想这样做:
mask = []
for i in df.index:
mask.append(filter_func(i))
df = df[mask]
但以一种不需要两倍索引空间的方式来做到这一点

最佳答案

您可以使用 map 而不是 filter ,然后进行 bool 索引:

df.loc[map(filter_func,df.index)]
   value
0 12
4 6
7 2
8 35

关于python - 按功能过滤 Pandas 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63627624/

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