使用日期索引从多个csv文件创建pandas DataFrame

时间:2017-09-04 10:30:01

标签: python pandas csv

我有多个带测量数据的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中?

1 个答案:

答案 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