如何在过滤时强制pandas使用变量中的值而不是变量名本身?
假设:
column_name = "weird_name"
df = pd.DataFrame(data={column_name: [1, 2, 3, 4, 5]})
返回:
weird_name
0 1
1 2
2 3
3 4
4 5
现在,我想过滤奇怪的列,但通常的方法是将变量column_name
视为列的名称:
df[df.column_name > 3]
显然它会抛出:
AttributeError: 'DataFrame' object has no attribute 'column_name'
PS。如果一位母语为英语的人在编辑标题时听起来更自然,我会很高兴。
答案 0 :(得分:0)
编辑:正如@jpp在评论中提到的那样,这是正确的答案:
df[df[column_name] > 3]