我有多个带测量数据的csv文件,我需要将日期/时间作为索引合并到一个Pandas DataFrame中。我已经尝试过使用pd.concat,但是,这只会将csv文件添加到一起,并且不能正确“排序”它们。
示例文件1:
allPosts
示例文件2:
NAME;DATE;VALUE;UNIT
SO.DA.TT.401.3;01-01-2015 00:00:00;14,9;°C
SO.DA.TT.401.3;01-01-2015 00:10:00;14,9;°C
如何导入文件,使它们按索引和名称排序到一个DataFrame中?
答案 0 :(得分:1)
您需要使用glob
返回文件名的列表理解,然后使用参数index_col, parse_dates
将第二列设置为DatetimeIndex
,将参数decimal
用于转换VALUE
列数字。
DataFrame
的上一个concat
列表,如有必要sort_index
:
files = glob.glob('files/*.csv')
#second column convert to datetimeindex
dfs = [pd.read_csv(fp, sep=';',index_col=[1], parse_dates=[1], decimal=',') for fp in files]
df = pd.concat(dfs).sort_index()
print (df)
NAME VALUE UNIT
DATE
2014-06-16 20:50:00 SO.DA.TT.401.3 51.9 °C
2014-06-16 21:00:00 SO.DA.TT.401.3 51.8 °C
2015-01-01 00:00:00 SO.DA.TT.401.3 14.9 °C
2015-01-01 00:10:00 SO.DA.TT.401.3 14.9 °C