如果列不在df2中,如何从df中删除列

时间:2019-03-04 22:03:14

标签: python pandas

我需要比较多个df,但是收集数据的方式是一个df有25列,另外有20列。请记住,列标签名称是相同的(df的25列中有20列)。

我不知道如何从df_cont中删除列,如果它们不存在于df_red中,并且不包含df_red中的列,而这些列目前不是df_cont

df_cont     A     B     C     D    E    F
01-01-2019  1     2     3     4    5    5
02-01-2019  1     3     4     4    6    5

df_red      A     B     D     F    G 
01-01-2019  2     5     6     4    3
02-01-2019  2     5     6     4    3

代码:

df_cont1 = df_cont.query(df_cont.columns == df_red.columns)

预期:

df_cont1        A     B     D     F
    01-01-2019  1     2     4     5
    02-01-2019  1     3     4     5

1 个答案:

答案 0 :(得分:1)

如@busybear所述,您可以使用

df_cont = df_cont[df_red.columns]

在您的特殊情况下。

如果您不知道哪个DataFrame更大,则此替代解决方案会更安全一些:

df_cont[df_cont.columns.intersection(df_red.columns)]