我正在从网上阅读一些自动天气数据.观察每5分钟发生一次,并编译成每个气象站的月度文件.一旦我完成了解析文件,DataFrame看起来像这样:
Sta Precip1hr Precip5min Temp DewPnt WindSpd WindDir AtmPress
Date
2001-01-01 00:00:00 KPDX 0 0 4 3 0 0 30.31
2001-01-01 00:05:00 KPDX 0 0 4 3 0 0 30.30
2001-01-01 00:10:00 KPDX 0 0 4 3 4 80 30.30
2001-01-01 00:15:00 KPDX 0 0 3 2 5 90 30.30
2001-01-01 00:20:00 KPDX 0 0 3 2 10 110 30.28
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,有时科学家会回过头来纠正观察结果 - 不是通过编辑错误的行,而是通过在文件的末尾附加一个重复的行.这种情况的简单示例如下所示:
import pandas
import datetime
startdate = datetime.datetime(2001, 1, 1, 0, 0)
enddate = datetime.datetime(2001, 1, 1, 5, …
Run Code Online (Sandbox Code Playgroud) 所以我的数据框是由许多单独的excel文件组成的,每个文件都有日期作为文件名和当天电子表格中水果的价格,所以电子表格看起来像这样:
15012016:
Fruit Price
Orange 1
Apple 2
Pear 3
16012016:
Fruit Price
Orange 4
Apple 5
Pear 6
17012016:
Fruit Price
Orange 7
Apple 8
Pear 9
Run Code Online (Sandbox Code Playgroud)
因此,为了将所有信息放在一起,我运行以下代码将所有信息放入数据帧的字典中(所有水果价格文件存储在'C:\ Fruit_Prices_by_Day'中)
#find all the file names
file_list = []
for x in os.listdir('C:\Fruit_Prices_by_Day'):
file_list.append(x)
file_list= list(set(file_list))
d = {}
for date in Raw_list:
df1 = pd.read_excel(os.path.join('C:\Fruit_Prices_by_Day', date +'.xlsx'), index_col = 'Fruit')
d[date] = df1
Run Code Online (Sandbox Code Playgroud)
然后这就是我被卡住的部分.然后我如何将这个dict变成一个数据框,其中列名是dict键,即日期,所以我可以在同一个数据帧中得到每个每个水果的价格,如:
15012016 16012016 17012016
Orange 1 4 7
Apple 2 5 8
Pear 3 6 9
Run Code Online (Sandbox Code Playgroud)