我有多个pandas数据框对象cost1,cost2,cost3 ....
如何将所有这些数据框中的行追加到一个数据框中,同时仅保留公共列名称中的元素?
截至目前我有
帧= [COST1,cost2,COST3 ...]
new_combined = pd.concat(frames,ignore_index = True)
这显然包含在所有数据帧中不常见的列。
你可以在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)
对于未来的读者,上述功能可以通过熊猫本身实现。如果在pd.concat中提供join ='inner'参数,Pandas可以在保留公共列的同时连接数据帧。例如
pd.concat(frames,join='inner', ignore_index=True)