【发布时间】:2021-11-01 19:53:52
【问题描述】:
我有一个看起来像这样的数据框:
pd.DataFrame({
'A Code': ['123', '234', '345', '234'],
'B Code': ['345', '123', '234', '123'],
'X Code': ['987', '765', '765', '876'],
'Y Code': ['765', '876', '987', '765'],
'H Code': ['AB', 'CD', 'EF', 'AB']
})
A Code B Code X Code Y Code H Code
0 123 345 987 765 AB
1 234 123 765 876 CD
2 345 234 765 987 EF
3 234 123 876 765 GH
我想找到A Code 或B Code 是123 和X Code 或Y Code 是765 的行,或者H Code 是EF 或GH 的行。
我使用了以下条件:
(
((df[df['A Code'] == '123']) | (df[df['B Code'] == '123']))
&
((df[df['X Code'] == '765']) | (df[df['Y Code'] == '765']))
)
|
(df[df['H Code'] == 'EF'])
这很有效,但会变得很长而且很乱。
有没有更有效的方法来做到这一点?
【问题讨论】:
标签: python pandas dataframe filter