我正在尝试根据可变数量的列和值从 pandas 数据框中选择行。对于固定的列和值,可以这样做:
df = pd.DataFrame([{'name' : 'ruben','age' : 25},{'name' : 'henk', 'age' : 26},{'name' : 'gijs', 'age' : 20}])
column_name = 'name'
column_value = 'ruben'
rows = df[df[column_name] == column_value]
Run Code Online (Sandbox Code Playgroud)
但是,我想对可变数量的列值对执行此操作,例如从列表中
df = pd.DataFrame([{'name' : 'ruben','age' : 25},{'name' : 'henk', 'age' : 26},{'name' : 'gijs', 'age' : 20}])
column_value_pairs = {'name' : 'ruben','age' : '25'}
rows = df[???]
Run Code Online (Sandbox Code Playgroud)
然后应该返回姓名为 ruben 且年龄为 25 的所有行。基本上是这样的:
rows = df[(df['name'] == 'ruben') & (df['age'] == 25)]
Run Code Online (Sandbox Code Playgroud)
而是使用字典中的列和值。
只是迭代你的字典会起作用吗?
for key in column_value_pairs:
df = df.loc[(df[key] == column_value_pairs[key])]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5145 次 |
| 最近记录: |