我有3个数据框,如下所示,
`df1 = [1q2 123 1q3 212 1d4 234 ...]
df2 = [1q1 223 1q2 126 1q3 42 1d4 314 ...] df3 = [1q2 923 1q4 121 1d3 423 ...]`
我怎样才能得到像这样的结果
dfans=[1q1 0 223 0
1q2 123 126 923
1q3 212 42 423
1d4 234 314 121....]
column1包含id列2,在匹配id之后获取id的正确值,来自df1; 类似的值与第3列中的df2和来自df3的值匹配相匹配。 如果没有该id的值,则在该位置放置0。 有什么办法吗?
答案 0 :(得分:0)
这是一个简单的合并。
import pandas as pd
df1 = pd.DataFrame({'id' : ['A', 'B', 'D', 'E'], 'var1' : [1, 2, 5, 8]})
df2 = pd.DataFrame({'id' : ['B', 'C', 'D', 'E'], 'var2' : [1, 3, 8, 8]})
df3 = pd.DataFrame({'id' : ['A', 'B', 'C', 'D'], 'var3' : [2, 4, 6, 7]})
dfAns = df1.merge(df2, on = 'id', how = 'outer').merge(df3, on='id', how='outer').fillna(0)
输出看起来像 -