私はPython Pandasを使用してマージしようとしている5つのcsvファイルを持っており、64ビットPythonのメモリ問題が発生しています。パンダは、1つの異なるカラム名を持つ5つのcsvファイルをマージする
全5つのCSVファイルは、同一の列名があります。 ['A', 'B', 'C', ... 'Start_time', 'end_time', 'Unique_column']
ここ
Unique_columnは、CSVファイルごとに異なる列名です。だから私はそれがpandas.merge
またはpandas.concat
方法であり、最終的に私は
['A', 'B', 'C', ... 'Start_time', 'end_time', 'Unique_column1', 'Unique_colum2', ... 'Unique_colum5']
としてデータフレームを取得しますので、お互いにすべての5つのファイルをマージする必要がありますか?
UPDATE:
>>> 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!
>>>
このエラー 'トレースバック(最後の最新の呼び出し)行き方: ファイルに ファイル ""、1行目を、 "C:\ Python27x64 \ libには\サイト - パッケージ\パンダツール\ \ merge.py" 、line 846、concat return op.get_result() ファイル "c:¥Python27x64¥lib¥site-packages¥pandas¥tools¥merge.py"、行1031、get_result indexers [ax] = obj_labels.reindex (new_labels)[1] ファイル "c:¥Python27x64¥lib¥site-packages¥pandas¥indexes¥multi.py"、1422行目、再インデックス内 raise例外( "一意でない複数のインデックスを処理できません! ) 例外:一意でない複数のインデックスを処理できません! ' –
Novitoll