我想使用 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
我想对包含日期时间格式的列进行切片。
如果我正确理解您的问题,您可以这样做:
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
我计划为usecols
文件阅读器添加一个选项,以读取各个列。可能适用于 pandas 0.10(本月晚些时候)