Chi*_*ose 4 python dataframe pandas
我有一个数据框 df 定义如下:
df = pd.DataFrame()
df["A"] = ['True','True','True','True','True']
df["B"] = ['True','False','True','False','True']
df["C"] = ['False','True','False','True','False']
df["D"] = ['True','True','False','False','False']
df["E"] = ['False','True','True','False','True']
df["F"] = ['HI','HI','HI','HI','HI']
Run Code Online (Sandbox Code Playgroud)
>> df
A B C D E F
0 True True False True False HI
1 True False True True True HI
2 True True False False True HI
3 True False True False False HI
4 True True False False True HI
Run Code Online (Sandbox Code Playgroud)
和一个清单
lst = ["A","C"]
Run Code Online (Sandbox Code Playgroud)
我想根据 .df 中'True'列的值过滤 df 中的行lst。也就是说,我想得到我的结果数据帧:
A B C D E F
1 True False True True True HI
3 True False True False False HI
Run Code Online (Sandbox Code Playgroud)
除了遍历列表中的列名并对其进行过滤之外,还有更好的解决方案吗?
使用DatFrame.all在柱轴(axis=1):
df[df[lst].all(axis=1)]
A B C D E F
1 True False True True True HI
3 True False True False False HI
Run Code Online (Sandbox Code Playgroud)
细节:
我们使用 获取范围内的列df[lst],然后我们all用来检查哪些行的“全部”为True:
df[lst].all(axis=1)
0 False
1 True
2 False
3 True
4 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |