gpt4 book ai didi

python - Pandas 合并 5 个 csv 文件,只有 1 个不同的列名

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:59 28 4
gpt4 key购买 nike

我有 5 个 csv 文件,我正在尝试使用 Python Pandas 合并这些文件,而且我正在运行 64 位 Python,导致内存问题。

所有 5 个 csv 文件都具有相同的列名称:['A'、'B'、'C'、...'Start_time'、'end_time'、'Unique_column']

此处 Unique_column 是每个 CSV 文件的不同列名称。所以我需要将所有 5 个文件相互合并,所以最后我将得到 DataFrame 为

['A'、'B'、'C'、...'Start_time'、'end_time'、'Unique_column1'、'Unique_colum2'、...'Unique_colum5']

pandas.merge还是pandas.concat方法?

更新:

>>> import os
>>> import glob
>>> import numpy as np
>>> import pandas as pd
>>> dir_name = r'C:\Users\data'
>>> dfs = []
>>> files = glob.glob(os.path.join(dir_name, '*.csv'))
>>> for f in files:
... df = pd.read_csv(f)
... dfs.append(df)
...
>>> common_cols = ['Target', 'POS', 'Start_Week', 'End_Week', 'Measure_Metric']
>>> res = pd.concat([df.set_index(common_cols) for df in dfs], axis=1).reset_index()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\Python27x64\lib\site-packages\pandas\tools\merge.py", line 846, in concat
return op.get_result()
File "c:\Python27x64\lib\site-packages\pandas\tools\merge.py", line 1031, in get_result
indexers[ax] = obj_labels.reindex(new_labels)[1]
File "c:\Python27x64\lib\site-packages\pandas\indexes\multi.py", line 1422, in reindex
raise Exception("cannot handle a non-unique multi-index!")
Exception: cannot handle a non-unique multi-index!
>>>

最佳答案

IIUC,在将每个列的索引设置为所有公共(public)列后使用 pd.concat

假设您已将所有文件导入到列表 dfs

dfs = [df1, df2, df3, df4, df5]

然后像这样连接

common_cols = ['A', 'B', 'C', 'Start_time', 'end_time']
pd.concat([df.set_index(common_cols) for df in dfs], axis=1).reset_index()

关于python - Pandas 合并 5 个 csv 文件,只有 1 个不同的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39315923/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com