【问题标题】:How to remove uncommon columns in two dataframes in Pandas?如何删除 Pandas 中两个数据框中的不常见列?
【发布时间】:2019-10-03 07:43:22
【问题描述】:

我有 2 个熊猫数据框:df1 和 df2

df1 有这些列:

c1, c2 ,c3 ,c4

而 df2 有这些列:

c2, c3, c4, c5

如何删除这 2 个数据框中不常见的列,使它们都变成这样:

df1: c2, c3, c4
df2: c2, c3, c4

【问题讨论】:

  • df1 没有c5 列?

标签: python pandas


【解决方案1】:

给定以下数据框:

df1 = pd.DataFrame(columns=['c1','c2','c3','c4'])
df2 = pd.DataFrame(columns=['c2','c3','c4','c5'])

创建 交集 df1df2 列名:

common_col = (df2.columns) & (df1.columns)  

过滤 df1df2 common_col:

df1 = df1[common_col]   # df1.columns: c2, c3, c4
df2 = df2[common_col]   # df2.columns: c2, c3, c4

【讨论】:

  • 所以您刚刚编辑了 OP 的预期输出。你怎么这么确定?我不认为你应该这样做,除非你 100% 确定,这是你不可能的
  • 请求与预期输出不一致。现在请求和预期的输出是一致的。如果@jdoe 想问更多,他们可以改变问题
  • 是的,对不起,我忘了删除 c5。
【解决方案2】:

您可以创建一个列表来仅存储常用列,然后从两个数据框中子集列

# list with only common columns
common_columns = [col for col in df1.columns if col in df2.columns]
# keep only common columns from df1 and df2
df1 = df1[common_columns]
df2 = df2[common_columns]

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2019-06-07
    • 2013-01-17
    相关资源
    最近更新 更多