为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Pandas 进行动态数据选择

使用 Pandas 进行动态数据选择

幕布斯7119047 2021-10-26 17:08:31
我有一个动态情况,我想按照波纹管逻辑过滤数据。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


查看完整回答
反对 回复 2021-10-26
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信