Python 如何合并两个数据帧,其中一列是另一个数据帧中所有列的名称?
所以问题很简单,我有两个数据帧,一个看起来像这样(第一个df) 然后我有另一个看起来像这样的数据帧(第二个df) 我的想法是我希望最终结果是Python 如何合并两个数据帧,其中一列是另一个数据帧中所有列的名称?,python,excel,pandas,merge,Python,Excel,Pandas,Merge,所以问题很简单,我有两个数据帧,一个看起来像这样(第一个df) 然后我有另一个看起来像这样的数据帧(第二个df) 我的想法是我希望最终结果是 Date name info x y 1/2/2007 a 3 s 20 1/2/2007 b 34 m 5 1/3/2007 a 23 s 21 1/4/2007 a 21 m 23 1/5/2007 b
Date name info x y
1/2/2007 a 3 s 20
1/2/2007 b 34 m 5
1/3/2007 a 23 s 21
1/4/2007 a 21 m 23
1/5/2007 b 31 s 2
1/6/2007 a 35.3 m 20.5
1/6/2007 b 39.6 s 7
1/6/2007 c 43.9 m 8
1/7/2007 a 48.2 s 20.4
1/8/2007 b 52.5 m 5.6
1/9/2007 a 56.8 s 20.2
1/9/2007 c 61.1 m 10
1/10/2007 a 65.4 s 20.1
1/11/2007 a 69.7 m 20
1/12/2007 b 74 s 6.4
1/13/2007 b 78.3 m 6.6
1/14/2007 a 82.6 s 19.7
1/14/2007 b 86.9 m 6.8
1/14/2007 c 91.2 s 15
1/14/2007 d 95.5 m 20
有什么简单的方法可以做到这一点吗?因为我拥有的数据帧看起来第二个df要大得多,第一个df要长得多,我不想做一个超大的合并,因为我唯一的想法是合并,包括第二个df中的每个名字,这将是永恒的。如果有人能帮我的话,那就太好了。这个想法是使用pandas在python中实现的,但是如果现在有人知道怎么做,我也可以在excel中实现。如果您只想插入列a,谢谢
pd.merge(df, df2[['a']], how='inner', right_index=True, left_index=True)
或者可以合并所有列并删除列
pd.merge(df, df2, how='inner', right_index=True, left_index=True).drop(['b','c','d'],1]
所以我刚试过你的代码,但是,你正在进行的合并,适用于只有四列的dat框架,而我的案例可能有一百多列,所以逐个键入它们的名称是没有效率的。
pd.merge(df, df2[['a']], how='inner', right_index=True, left_index=True)
pd.merge(df, df2, how='inner', right_index=True, left_index=True).drop(['b','c','d'],1]