繁体   English   中英

根据熊猫中第二个数据框的列值从一个数据框删除列

[英]Dropping column from one dataframe based on column value of second dataframe in pandas

我有2个数据帧df1和df2,都由8列组成,如下所示:

**df1**
╔══════════════════════════════════════════════════════════╗
║John ║ Mark ║ Jane ║ Natasha ║ Oliver ║ Tony ║ Judd ║ Ron ║
╚══════════════════════════════════════════════════════════╝


**df2**
╔══════════════════════════════════════════════════╗
║True ║True ║False ║True ║False ║False ║False ║True║
╚══════════════════════════════════════════════════╝

df1的列是不同人的名字,而df2的列名是布尔值。 我想做的是删除df1中所有在df2中具有False值的列。 因此,结果输出应如下所示:

**output**
╔════════════════════════════╗
║John ║ Mark ║ Natasha ║ Ron ║
╚════════════════════════════╝

我正在从csv文件读取两个数据帧。

任何和所有帮助将不胜感激。

注意 :实际的数据帧每个都有500列。 使用8作为示例进行可视化,并显示数据框具有相等的列数

提前致谢

您可以使用基本索引。 但是,当您解析df2 ,列名重复且已更改,因此需要进行一些清理。

设定

names = ['John', 'Mark', 'Jane', 'Natasha', 'Oliver', 'Tony', 'Judd', 'Ron']
cols = ['TRUE', 'TRUE.1', 'FALSE', 'FALSE.1', 'TRUE.2', 'FALSE.2', 'FALSE.3', 'TRUE.3']

df1 = pd.DataFrame(columns=names)
df2 = pd.DataFrame(columns=cols)

df1.loc[:, df2.columns.str.contains('TRUE')]

Empty DataFrame
Columns: [John, Mark, Oliver, Ron]
Index: []

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM