在python数据框架中删除不需要的列。

问题描述 投票:0回答:1

我是pythonpanda的新手。这个数据框是一个实验室练习的一部分。

以下是数据框架。结果有20行,384列,我想删除所有值为 "No "的列,并创建这个数据框的子集。

           country almond angelica anise anise_seed apple apple_brandy /
55620  Switzerland     No       No    No         No    No           No   
55621  Switzerland    Yes       No    No         No   Yes           No   
55622  Switzerland     No       No    No         No    No           No   
55623  Switzerland     No       No    No         No    No           No   
55624  Switzerland     No       No    No         No    No           No   
55625  Switzerland     No       No    No         No    No           No   
55626  Switzerland     No       No    No         No    No           No   
55627  Switzerland     No       No    No         No    No           No   
55628  Switzerland    Yes       No    No         No    No           No

我想删除所有值为 "No "的列,并创建一个没有这些列的数据框子集。从上面的数据集来看,只有列'杏仁'和'苹果'的值不是'No'。所以子集应该是这样的。

           country almond apple 
55620  Switzerland     No    No
55621  Switzerland    Yes   Yes
55622  Switzerland     No    No
55623  Switzerland     No    No
55624  Switzerland     No    No
55625  Switzerland     No    No
55626  Switzerland     No    No
55627  Switzerland     No    No   
55628  Switzerland    Yes    No
python pandas
1个回答
3
投票

首先检查 eq 中是否有至少一个匹配的值,然后测试 DataFrame.any:

df = df.loc[:, df.ne('No').any()]
print (df)
           country almond apple
55620  Switzerland     No    No
55621  Switzerland    Yes   Yes
55622  Switzerland     No    No
55623  Switzerland     No    No
55624  Switzerland     No    No
55625  Switzerland     No    No
55626  Switzerland     No    No
55627  Switzerland     No    No
55628  Switzerland    Yes    No
© www.soinside.com 2019 - 2024. All rights reserved.