2016-10-04 28 views
0

我有多個熊貓數據幀對象COST1,cost2,COST3 ....pandas.concat多個數據幀僅使用公共列

  1. 他們有不同的列名(和列數),但具有一些共同。
  2. 列數在每個數據框中相當大,因此手動排列公共列將是痛苦的。

如何將所有這些數據幀中的行附加到單個數據框中 ,同時僅保留常用列名中的元素?

截至目前我有

幀= [COST1,cost2,COST3 ...]

new_combined = pd.concat(幀,ignore_index =真)

這顯然包含列,其在所有數據幀中並不常見。

回答

4

您可以找到Python的set.intersection公用列:

common_cols = list(set.intersection(*(set(df.columns) for df in frames))) 

要連接只使用普通的列,您可以使用

pd.concat([df[common_cols] for df in frames], ignore_index=True) 
+0

完美地工作!謝謝阿美 – VM1

+0

不客氣。祝一切順利。 –

相關問題