[英]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.