2

我想使用 pandas 对 csv 文件中包含 datetime 类型的列进行切片。

提前致谢。

例如:data.csv

Country,Player,Runs,ScoreRate,MatchDate,Weekday
Afghanistan,Mohammad Shahzad,118,97.52,16-02-2010,Tue
india,schin,112,98.02,16-03-2010,wed

我想对包含日期时间格式的列进行切片。

4

2 回答 2

4

如果我正确理解您的问题,您可以这样做:

from pandas import *

读入数据,按 MatchDate 索引:

frame=read_csv("dates.csv",  parse_dates = True, index_col = 4)
print frame

                Country            Player  Runs  ScoreRate Weekday
MatchDate                                                         
2010-02-16  Afghanistan  Mohammad Shahzad   118      97.52     Tue
2010-03-16        india             schin   112      98.02     wed

定义两个 datetime 对象来定义您想要切片的范围:

x=datetime(2010, 1, 5)
y=datetime(2010, 2, 25)

并对其进行切片(获取所有具有MatchDate介于x和之间的行y):

print frame.ix[x:y]
                Country            Player  Runs  ScoreRate Weekday
MatchDate                                                         
2010-02-16  Afghanistan  Mohammad Shahzad   118      97.52     Tue

如果您只想获得某个月份或年份,您可以这样做:

frame.ix['2010-2']

            Country            Player  Runs  ScoreRate Weekday
MatchDate                                                         
2010-02-16  Afghanistan  Mohammad Shahzad   118      97.52     Tue
于 2012-10-26T08:18:26.063 回答
0

我计划为usecols文件阅读器添加一个选项,以读取各个列。可能适用于 pandas 0.10(本月晚些时候)

于 2012-10-27T13:41:51.020 回答