【发布时间】:2020-02-06 15:53:22
【问题描述】:
我正在尝试将多个 .txt 文件合并到一个目录中,该目录专门合并到数据框中的公共列 X 之一。
import pandas as pd
df1 = pd.DataFrame({'X': ['X0', 'X1', 'X2', 'X3'],
...: 'B': ['B0', 'B1', 'B2', 'B3'],
...: 'C': ['C0', 'C1', 'C2', 'C3'],
...: 'D': ['D0', 'D1', 'D2', 'D3']})
df2 = pd.DataFrame({'X': ['X0', 'X1', 'X2', 'X3'],
...: 'G': ['G0', 'G1', 'G2', 'G3'],
...: 'H': ['H0', 'H1', 'H2', 'H3'],
...: 'J': ['J0', 'J1', 'J2', 'J3']})
通过关注之前的这篇文章 Pandas Merging 101 还有这个https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html
我试过了
data = pd.DataFrame()
for file in glob.iglob(filepath + '/*.txt', recursive=True):
print(file)
df=pd.read_csv(file, sep ='\t',header=0, skiprows=0, skipfooter=0, na_values=(""," ","NA"))
data=pd.concat([data,df])
data_merge = pd.merge(data,on='X',how='inner')
但我得到了
TypeError: merge() 缺少 1 个必需的位置参数:'right'
如何通过共同的X 列加入两个数据名?
预期输出
谢谢。
【问题讨论】:
-
您可以将
pd.merge与:df1.merge(df2, on='X')或pd.merge(df1, df2, on='X')一起使用,它们是一样的
标签: python pandas dataframe merge