Pandas 解析日期并设置索引 - 奇怪的行为
Pandas parse date and set index- weird behavior
我在使用 pandas.
读取 CSV 文件时尝试解析日期列并将该列设置为索引时遇到了一些奇怪的行为
csv 文件有一个 throw-away header 和一个 throw-away 索引列,如下所示(throw-away 我的意思是我不想使用它们)
"","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,然后使用以下代码片段设置索引
import pandas as pd
df = pd.read_csv('Whosebug.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
调用中设置索引时,我得到了一个奇怪的结果。这个mis-names索引列
df = pd.read_csv('Whosebug.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('Whosebug.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_dates
和 usecols
时会出现一个错误,该错误已在 0.18.1 (commit) 中修复。也许您 运行 是旧版本?
我在使用 pandas.
读取 CSV 文件时尝试解析日期列并将该列设置为索引时遇到了一些奇怪的行为csv 文件有一个 throw-away header 和一个 throw-away 索引列,如下所示(throw-away 我的意思是我不想使用它们)
"","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,然后使用以下代码片段设置索引
import pandas as pd
df = pd.read_csv('Whosebug.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
调用中设置索引时,我得到了一个奇怪的结果。这个mis-names索引列
df = pd.read_csv('Whosebug.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('Whosebug.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_dates
和 usecols
时会出现一个错误,该错误已在 0.18.1 (commit) 中修复。也许您 运行 是旧版本?