我有两个 .tsv 文件,如下所示:
ID prop name size
A x rob 2
B y sally 3
C z debby 5
D w meg 6
和
ID lst_name area
A sanches 4
D smith 7
C roberts 8
我将它们加载到 pandas DataFrame 中并想合并它们,这样我就得到了一个新的 dataFrame:
ID-name prop name size lst_name area
A x rob 2 sanches 4
B y sally 3
C z debby 5 roberts 8
D w meg 6 smith 7
我一直在尝试使用 pd.merge()
来完成此操作,但遇到以下问题:
df = pd.DataFrame.from_csv("a.tsv", sep='\t')
df1 = pd.DataFrame.from_csv("b.tsv", sep='\t')
result = pd.merge(df, df1, how='inner',on=["ID","ID-name"])
是否可以用 pandas 完成这样的合并?
最佳答案
您需要的是左连接(或外连接,当然取决于您的情况),因为在此示例中您还希望查看 B 的记录,即使它在 df1 上没有记录。
result = pd.merge(df, df1, how="left",on=["ID","ID"])
prop name size lst_name area
ID ID
A A x rob 2 sanches 4.0
B B y sally 3 NaN NaN
C C z debby 5 roberts 8.0
D D w meg 6 smith 7.0
关于python - 根据行值合并 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54896162/