gpt4 book ai didi

python - 编写过滤行数据框的函数时出现问题

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

我正在编写一个函数,它将作为我想使用的行的过滤器。示例数据框如下:

df = pd.DataFrame()
df ['Xstart'] = [1,2.5,3,4,5]
df ['Xend'] = [6,8,9,10,12]
df ['Ystart'] = [0,1,2,3,4]
df ['Yend'] = [6,8,9,10,12]
df ['GW'] = [1,1,2,3,4]

def filter(data,Game_week):
pass_data = data [(data['GW'] == Game_week)]

当我按如下方式记忆函数过滤器时,我得到了一个错误。

df1 = filter(df,1)

错误信息是

AttributeError: 'NoneType' object has no attribute 'head'

但是当我使用手动过滤器时,它起作用了。

pass_data = df [(df['GW'] == [1])]

这是我的第一期。

我的第二个问题是我想过滤具有多个 GW (1,2,3) 等的行。

为此,我可以手动执行以下操作:

pass_data = df [(df['GW'] == [1])|(df['GW'] == [2])|(df['GW'] == [3])]

如果我想在函数输入中使用列表 [1,2,3]我如何在函数中编写它,以便我可以输入 1 到 3 的范围?

谁能给个建议?

谢谢,

齐普

最佳答案

使用isin对于传递值列表而不是标量,也是 filter是 python 中的现有函数,所以最好更改函数名称:

def filter_vals(data,Game_week):
return data[data['GW'].isin(Game_week)]

df1 = filter_vals(df,range(1,4))

关于python - 编写过滤行数据框的函数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53369287/

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