【发布时间】:2019-05-14 02:20:27
【问题描述】:
如果列在两个数据框中都有值,我如何合并两个数据框?
数据框 1 - df1
A B C
0 'name1' 'foo' 'bar'
1 'name2' 'foo'' 'bar'
2 'name3' 'foo' NaN
3 'name4' 'foo' NaN
数据框 2 - df2
A C
0 'name3' 'bar'
1 'name4' 'bar'
我试过了:
pd.merge(df1, df2, how='left', on='A')
但这并不能创建所需的输出。
这是一个完整的最小示例:
import pandas as pd
from io import StringIO
csv1 = """A,B,C
'name1','foo','bar'
'name2','foo'','bar'
'name3','foo',
'name4','foo',
"""
csv2 = """A,C
'name3','bar'
'name4','bar'
"""
df1 = pd.read_csv(StringIO(csv1), header=0)
df2 = pd.read_csv(StringIO(csv2), header=0)
pd.merge(df1, df2, how='left', on='A')
我想要这个:
A B C
0 'name1' 'foo' 'bar'
1 'name2' 'foo'' 'bar'
2 'name3' 'foo' 'bar'
3 'name4' 'foo' 'bar'
但是得到这个:
A B C_x C_y
0 'name1' 'foo' 'bar' NaN
1 'name2' 'foo'' 'bar' NaN
2 'name3' 'foo' NaN 'bar'
3 'name4' 'foo' NaN 'bar'
【问题讨论】: