gpt4 book ai didi

python - 过滤多列 Pandas

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:53 24 4
gpt4 key购买 nike

我有一个将 pandas 数据框作为输入的方法:

def dfColumnFilter(df, columnFilter, columnName):
''' Returns a filtered DataFrame

Keyword arguments:
df : DataFrame in which to apply the filter
columnFilter : The list of which to filter by
columnName : The DataFrame column to apply the columnFilter to '''

for column_filter in columnFilter:
df=df[df[columnName] == column_filter]
return df

问题是我如何让 n 列工作?

最佳答案

您可以使用 *args传递成对列表的关键字:

def filter_df(df, *args):
for k, v in args:
df = df[df[k] == v]
return df

可以这样使用:

df = pd.DataFrame({'a': [1, 2, 1, 1], 'b': [1, 3, 3, 3]})

>>> filter_df(df, ('a', 1), ('b', 2))
a b
2 1 3
3 1 3

注意

理论上,你可以使用**kwargs,这会有更令人愉快的用法:

filter_df(df, a=1, b=2)

但是您只能将它用于名称为有效 Python 标识符的列。

编辑

请参阅下面@Goyo 的评论以获得更好的实现点。

关于python - 过滤多列 Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35131096/

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