【问题标题】:Pandas parse date and set index- weird behavior熊猫解析日期并设置索引 - 奇怪的行为
【发布时间】:2016-06-24 17:17:18
【问题描述】:

当我尝试解析日期列并将该列设置为索引,同时使用 pandas 从 CSV 读取数据时,我遇到了一些奇怪的行为。

csv 文件有一个一次性的标题和一个一次性的索引列,如下所示(我的意思是我不想使用它们)

"","X.m..d..y","fizzBuzz"
"1","2/2/1984",0.02523659
"2","2/3/1984",-0.03692308
"3","2/6/1984",-0.01597444
"4","2/7/1984",-0.006493506
"5","2/8/1984",-0.0130719

现在,我可以轻松读取 df,然后使用以下 sn-p 设置索引

import pandas as pd
df = pd.read_csv('stackOverflow.csv',header=0,
                   names=['_throAwayindex','date','value'], usecols=['date','value'],
                  parse_dates=['date'] )
df = df.set_index('date')
df

完美输出期望的结果

               value
date                
1984-02-02  0.025237
1984-02-03 -0.036923
1984-02-06 -0.015974
1984-02-07 -0.006494
1984-02-08 -0.013072

但是当我尝试在read_csv 调用中设置索引时,我得到了一个奇怪的结果。这错误地命名了索引列

df = pd.read_csv('stackOverflow.csv',header=0,
                   names=['_throAwayindex','date','value'], usecols=['date','value'],
                  parse_dates=['date'], index_col=0 )
df
                   value
_throAwayindex          
2/2/1984        0.025237
2/3/1984       -0.036923
2/6/1984       -0.015974
2/7/1984       -0.006494
2/8/1984       -0.013072

这一切都错了:

df = pd.read_csv('stackOverflow.csv',header=0,
                   names=['_throAwayindex','date','value'], usecols=['date','value'],
                  parse_dates=['date'], index_col=1 )
df
               date
date               
 0.025237  2/2/1984
-0.036923  2/3/1984
-0.015974  2/6/1984
-0.006494  2/7/1984
-0.013072  2/8/1984

我对正在发生的事情以及如何在没有第二次调用set_index 的情况下仅通过read_csv 调用实现预期结果感兴趣。

【问题讨论】:

  • index_col=0 的策略对我有用(Python 3.5.1,pandas 0.18.1)。使用 parse_datesusecols 时出现了一个错误,该错误已在 0.18.1 (github.com/pydata/pandas/commit/…) 中修复,也许您运行的是旧版本?
  • 就是这样。升级,它工作正常。谢谢。如果您发布答案,我可以将其标记为已关闭

标签: python pandas io date-parsing


【解决方案1】:

index_col=0 的策略适合我(Python 3.5.1,pandas 0.18.1)。使用 parse_datesusecols 时出现了一个错误,该错误已在 0.18.1 (commit) 中修复。也许您正在运行旧版本?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多