У меня есть несколько CSV-файлов с датами (как ежедневно) и данными о температуре. Файлы, однако, приходят в разные даты (иногда перекрываются, имеют пропущенные даты…). Что я хочу сделать, это создать исходный файл с первым столбцом в качестве даты (включая все даты) и добавить столбцы данных о температуре из разных файлов CSV, соответствующих дате.
, чтобы упростить его, я рассматриваю, что у меня есть только один файл (df1). Поэтому я определил дату и время (df2) в качестве исходного файла и попытался использовать pd.concate (), чтобы добавить в него df1. Это работает, но это удаляет даты, которые не доступны из df1, в то время как я хочу сохранить все строки.
import pandas as pd
data = {'Datestart':['1/1/2010', '1/2/2010', '1/5/2010', '1/10/2010'], 'Temp':[20, 21, 19, 18]}
df1 = pd.DataFrame(data)
df2 = pd.DataFrame()
df2['Date'] = pd.date_range(start='1/1/2010', end='1/20/2010', freq='D')
df3 = pd.concat([df2.set_index('Date'), df1.set_index('Datestart').Temp],axis=1,join='inner')
он создает это:
Temp
2010-01-01 20
2010-01-02 21
2010-01-05 19
2010-01-10 18
, пока мне нужно это:
1/1/2010 20
1/2/2010 21
1/3/2010 NaN
1/4/2010 NaN
1/5/2010 19
1/6/2010 NaN
1/7/2010 NaN
1/8/2010 NaN
1/9/2010 NaN
1/15/2010 18
1/16/2010 NaN
1/17/2010 NaN
1/20/2010 NaN
1/21/2010 NaN