我有一个数据帧数据df
0 Easting Northing domain grade
1 3900 4100 2 0.02
2 3910 4100 3 0.01
3 3910 4100 3 0.01
4 3910 4100 2 0.01
我可以通过过滤列域== 3
来创建新的子集数据帧tempdf=df[df.domain==3]
我想要的是我想使用变量替换列名,例如print'%s'%变量 因为有时我不知道确切的名字。它可能是Domain或Dom所以我会给出这样的手动
custome_rawinput='domain'
tempdf=df[df.'%s'%custome_rawinput==3]
但这会给我一个错误(语法无效)
任何人都可以帮助我吗?
由于
答案 0 :(得分:0)
您可以在数据框上使用subscript
来按字符串选择列,在您的情况下 -
tempdf=df[df['%s'%custome_rawinput]==3]
虽然其中的'%s'
确实是不必要的,但您可以直接使用下面的内容,因为custome_rawinput
已经是字符串 -
tempdf=df[df[custome_rawinput]==3]
示例/演示 -
In [4]: inp = 'A'
In [5]: df[df[inp] == 1]
Out[5]:
A B
0 1 2
In [6]: df[df[inp] == 2]
Out[6]:
Empty DataFrame
Columns: [A, B]
Index: []
In [7]: df[df[inp] == 3]
Out[7]:
A B
1 3 4
答案 1 :(得分:0)
您可以使用initWithStyle
通过标签访问它。 You can read more about this if you're interested。从本质上讲,你只需将它视为普通的python字典,所以:
[]