【发布时间】:2019-06-26 12:25:07
【问题描述】:
我有以下形式的数据:
frame1 = pd.DataFrame({'supplier1_match0': ['x'], 'id': [1]})
frame2 = pd.DataFrame({'supplier1_match0': ['2x'], 'id': [2]})
并希望像这样将多个框架连接到一个框架:
base_frame = pd.DataFrame({'id':[1,2,3]})
我在 id 上合并并得到:
merged = base_frame.merge(frame1, how='left', left_on='id', right_on='id')
merged = merged.merge(frame2, how='left', left_on='id', right_on='id')
id supplier1_match0_x supplier1_match0_y
0 1 x NaN
1 2 NaN 2x
2 3 NaN NaN
列被复制并附加了一个“y”。这是我需要的:
id, supplier1_match0, ...
1, x
2, 2x
3, NaN
有没有简单的方法来实现这一点?有一个类似的问题 (Nested dictionary to multiindex dataframe where dictionary keys are column labels),但数据的形状不同。请注意,我有多个供应商并且他们有不同数量的匹配项,所以我不能假设数据将具有“矩形”形状。提前致谢。
【问题讨论】:
-
索引的长度和顺序是否相同?