我有一个动态情况,我想按照波纹管逻辑过滤数据。dynamic_cols = ['A', 'B'. ...]dynamic_values = [1,2,...]data_frame.LOC[data_frame[dynamic_cols == dynamic_values ]]我用过熊猫和麻木。请问对此有什么建议吗?例如:在上述情况下,我想过滤其中的行 A=1 and Column B=2
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
使用np.logical_and + reducelist comprehension或 create helper创建的所有掩码DataFrame和merge:
df = pd.DataFrame({
'A':[1,2,4,1,5,4],
'B':[2,8,9,2,2,3],
'C':[3,3,5,3,1,0],
})
print (df)
A B C
0 1 2 3
1 2 8 3
2 4 9 5
3 1 2 3
4 5 2 1
5 4 3 0
dynamic_cols = ['A','B','C']
dynamic_values = [1, 2, 3]
m = np.logical_and.reduce([df[a] == b for a, b in (zip(dynamic_cols, dynamic_values))])
df1 = df[m]
print (df1)
A B C
0 1 2 3
3 1 2 3
df2 = pd.DataFrame([dynamic_values], columns=dynamic_cols)
df1 = df.merge(df2)
print (df1)
A B C
0 1 2 3
3 1 2 3
添加回答
举报
0/150
提交
取消