python - 是否可以使用 **kwargs 中的关键字名称来过滤我的数据框?
问题描述
抱歉,如果标题有点晦涩,我很乐意更改它..
问题:我正在尝试在以下代码中使用关键字名称来使用 pandas 在数据框中按列名称进行过滤。
@staticmethod
def filter_json(json, col_filter, **kwargs):
'''
Convert and filter a JSON object into a dataframe
'''
df = pd.read_json(json).drop(col_filter, axis=1)
for arg in kwargs:
df = df[(df.arg.isin(kwargs[arg]))]
return df
但是我收到错误AttributeError: 'DataFrame' object has no attribute 'arg'
,因为arg
不是有效的列名(有意义)在行df.arg.isin(kwargs[arg]))]
我正在使用以下方法调用该方法...
filter_json(json_obj, MY_COL_FILTERS, IsOpen=['false', 0])
意义df.arg
本质上应该是df.IsOpen
问题:有没有办法在arg
用作我的列名(IsOpen
)?而不是我必须手动输入它df.IsOpen
解决方案
dataframe[columnname]
您也可以使用符号访问列: https ://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html
尝试:
for arg in kwargs: # arg is 'IsOpen'
df = df[(df[arg].isin(kwargs[arg]))] # df['IsOpen'] is same as df.IsOpen
推荐阅读
- vue.js - 具有可选值道具的组件
- node.js - 如何使用节点、createPresignedPost 和 fetch 将图像文件直接从客户端上传到 AWS S3
- c# - 在 Xamarin.iOS 中使用 C# 在带有核心图形的 UIView 中绘制“框架”时出现问题
- atlassian-sourcetree - SourceTree 认为开发分支是一个特性
- java - 如何根据关键字将解析的 JSON 消息的内容存储到字符串变量中?
- javascript - 通过输入 onBlur 停止搜索
- python - 如何确定哪条曲线最接近给定的一组点?
- java - 如何知道在javafx中点击了哪个按钮
- xsl-fo - 使用 fop 在偶数/奇数页上对齐图像
- python - 如何使用 webdriver for chrome 单击节点/角度脚本按钮生成的“下一页”?