我正在尝试在一个目录中合并多个 .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']})通过遵循以前的帖子解决方案,我构建了以下代码filepath = "D:\\test"data=[]for file in glob.iglob(filepath + '/*.txt', recursive=True): print(file) df=pd.read_csv(file, header=0, skiprows=0, skipfooter=0, na_values=(""," ","NA")) data=data.append(df) data_merge = pd.concat(data, keys = ('X')) 但我得到了AttributeError:“NoneType”对象没有“附加”属性如何通过公共列加入两个数据名?预期输出
2 回答
catspeake
TA贡献1111条经验 获得超0个赞
换行
data=data.append(df)
和
data.append(df.set_index('X'))
这会将X列设置为索引并将它们添加到数据数组中。然后您需要将合并线更改为
data_merge = pd.concat(data, axis=1).reset_index()
这将导致
print(data_merge.mark_down())
| | X | B | C | D | G | H | J |
|---:|:----|:----|:----|:----|:----|:----|:----|
| 0 | X0 | B0 | C0 | D0 | G0 | H0 | J0 |
| 1 | X1 | B1 | C1 | D1 | G1 | H1 | J1 |
| 2 | X2 | B2 | C2 | D2 | G2 | H2 | J2 |
| 3 | X3 | B3 | C3 | D3 | G3 | H3 | J3 |
幕布斯6054654
TA贡献1876条经验 获得超7个赞
替换这一行:
data=data.append(df)
有了这个:
data.append(df)
与append
与 pandas (即df = df.append(dict1)
)一起使用不同,append
在列表上使用方法时,您不需要重新定义它
添加回答
举报
0/150
提交
取消