вот моя проблема. У меня есть 100 файлов, все они имеют два столбца: «time_slope» и «slope». Я хотел бы создать один файл со всем в нем. Вот пример:
-----file 1----
2001.1 10
2001.2 20
2001.3 12
2001.4 4
2001.5 1
2001.6 13
-----file 2----
2001.3 20
2001.4 15
2001.5 6
-----file 3----
2001.6 15
2001.7 15
2001.8 15
2001.9 20
2002.0 23
**The expected result is:**
------- output file ---------
date file1 file2 file3
2001.1 10 NAN NAN
2001.2 20 NAN NAN
2001.3 12 NAN NAN
2001.4 4 15 NAN
2001.5 1 6 NAN
2001.6 13 NAN 15
2001.7 NAN NAN 15
2001.8 NAN NAN 15
2001.9 NAN NAN 20
2002.0 NAN NAN 23
Вот что я пробовал:
import pandas as pd
import os, glob
import numpy as np
filename_list = []
file_path = r"C:\Users\Path"
for file in glob.glob(path + "/*.csv"):
filename_list.append(file)
from numpy import genfromtxt
df_ini = pd.read_csv('output.csv') #IN FILE OUTPUT THERE ARE ALREADY TWO COLUMNS WITH VALUES
df_ini.columns=['time_slopes','slope']
for filename in filename_list:
with open(filename, 'r') as f:
# convert numpy array into DataFrame
numpyarray = genfromtxt(f, delimiter=',')
df = pd.DataFrame({'time_slopes':numpyarray[:, 0],'slope':numpyarray[:, 1]})
# remove NaN values:
df = df.dropna(how='all')
# re-index file:
df.reset_index(drop=True, inplace=True)
# merge file:
dfmerge = df_ini.merge(df,on='time_slopes',how='left')
dfmerge.to_csv("output.csv", sep=',', index=False)
Этот фрагмент кода возвращает только два столбца первый (из df_ini) и последний (из номера файла 100) ... во время каждой итерации последний столбец переписывается, а не добавляется позади. дата file1 file100 2001.1 10 NAN
Кто-нибудь знает, как решить эту проблему? Спасибо!