为了账号安全,请及时绑定邮箱和手机立即绑定

合并(从右侧加入)目录中的所有文件

合并(从右侧加入)目录中的所有文件

慕尼黑5688855 2022-07-19 10:22:57
我正在尝试在一个目录中合并多个 .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  |


查看完整回答
反对 回复 2022-07-19
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

替换这一行:

data=data.append(df)

有了这个:

data.append(df)

append与 pandas (即df = df.append(dict1))一起使用不同,append在列表上使用方法时,您不需要重新定义它


查看完整回答
反对 回复 2022-07-19
  • 2 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信