Del*_*ore 6 python indexing excel dataframe pandas
我拿了一张excel表,其中包含日期和一些值,并希望将它们转换为pandas数据帧,并仅选择某些日期之间的行.
出于某种原因,我不能选择按日期索引的行
Excel文件中的原始数据
MCU
Timestamp 50D 10P1 10P2 10P3 10P6 10P9 10P12
12-Feb-15 25.17 5.88 5.92 5.98 6.18 6.23 6.33
11-Feb-15 25.9 6.05 6.09 6.15 6.28 6.31 6.39
10-Feb-15 26.38 5.94 6.05 6.15 6.33 6.39 6.46
Run Code Online (Sandbox Code Playgroud)
码
xls = pd.ExcelFile('e:/Data.xlsx')
vols = xls.parse(asset.upper()+'VOL',header=1)
vols.set_index('Timestamp',inplace=True)
Run Code Online (Sandbox Code Playgroud)
set_index之前的数据
Timestamp 50D 10P1 10P2 10P3 10P6 10P9 10P12 25P1 25P2 \
0 2015-02-12 25.17 5.88 5.92 5.98 6.18 6.23 6.33 2.98 3.08
1 2015-02-11 25.90 6.05 6.09 6.15 6.28 6.31 6.39 3.12 3.17
2 2015-02-10 26.38 5.94 6.05 6.15 6.33 6.39 6.46 3.01 3.16
Run Code Online (Sandbox Code Playgroud)
set_index之后的数据
50D 10P1 10P2 10P3 10P6 10P9 10P12 25P1 25P2 25P3 \
Timestamp
2015-02-12 25.17 5.88 5.92 5.98 6.18 6.23 6.33 2.98 3.08 3.21
2015-02-11 25.90 6.05 6.09 6.15 6.28 6.31 6.39 3.12 3.17 3.32
2015-02-10 26.38 5.94 6.05 6.15 6.33 6.39 6.46 3.01 3.16 3.31
Run Code Online (Sandbox Code Playgroud)
产量
>>> vols.index
<class 'pandas.tseries.index.DatetimeIndex'>
[2015-02-12, ..., NaT]
Length: 1478, Freq: None, Timezone: None
>>> vols[date(2015,2,12)]
*** KeyError: datetime.date(2015, 2, 12)
Run Code Online (Sandbox Code Playgroud)
我希望这不会失败,我也应该能够选择一系列日期.尝试了这么多组合,但没有得到它.
使用datetime.date实例来尝试检索索引将不起作用,您只需要日期的字符串表示,例如'2015-02-12'或'2015/02/14'.
其次,vols[date(2015,2,12)]实际上是在查看DataFrame的列标题,而不是索引.您可以使用loc来获取行索引标签.比如你可以写vols.loc['2015-02-12']
| 归档时间: |
|
| 查看次数: |
4343 次 |
| 最近记录: |