根据大pandas的date范围select过滤Excel数据

我想知道如何过滤基于特定date范围的Excel数据使用pandas通过python。

举个例子:

(sheet1.xlsx)包含:

DATE 51 52 53 54 55 56 20110706 28.52 27.52 26.52 25.52 24.52 23.52 20110707 28.97 27.97 26.97 25.97 24.97 23.97 20110708 28.52 27.52 26.52 25.52 24.52 23.52 20110709 28.97 27.97 26.97 25.97 24.97 23.97 20110710 30.5 29.5 28.5 27.5 26.5 25.5 20110711 32.93 31.93 30.93 29.93 28.93 27.93 20110712 35.54 34.54 33.54 32.54 31.54 30.54 20110713 33.02 32.02 31.02 30.02 29.02 28.02 20110730 35.99 34.99 33.99 32.99 31.99 30.99 20110731 30.5 29.5 28.5 27.5 26.5 25.5 20110801 32.48 31.48 30.48 29.48 28.48 27.48 20110802 31.04 30.04 29.04 28.04 27.04 26.04 20110803 32.03 31.03 30.03 29.03 28.03 27.03 20110804 34.01 33.01 32.01 31.01 30.01 29.01 20110805 27.44 26.44 25.44 24.44 23.44 22.44 20110806 32.48 31.48 30.48 29.48 28.48 27.48 

如果我想从范围20110708-20110803过滤这个数据结果将是:

 DATE 51 52 53 54 55 56 20110708 28.52 27.52 26.52 25.52 24.52 23.52 20110709 28.97 27.97 26.97 25.97 24.97 23.97 20110710 30.5 29.5 28.5 27.5 26.5 25.5 20110711 32.93 31.93 30.93 29.93 28.93 27.93 20110712 35.54 34.54 33.54 32.54 31.54 30.54 20110713 33.02 32.02 31.02 30.02 29.02 28.02 20110730 35.99 34.99 33.99 32.99 31.99 30.99 20110731 30.5 29.5 28.5 27.5 26.5 25.5 20110801 32.48 31.48 30.48 29.48 28.48 27.48 20110802 31.04 30.04 29.04 28.04 27.04 26.04 20110803 32.03 31.03 30.03 29.03 28.03 27.03 

我怎么去做这个?

如果您将DATE设置为来自Dataframe df( df.set_index('DATE', inplace=True) )的索引。 然后你可以使用loc来切割你的DataFrame:

  df.loc[20110708:20110803] 

你应该在这里find示例: http : //pandas.pydata.org/pandas-docs/stable/10min.html

PS:我认为你的索引(DATE列)的dtype是int64。

如果您宁愿将DATE保留为标准列(而不是您的索引),也可以这样做:

df = df[(20110708 <= df.DATE) & (df.DATE <= 20110803)]

索引不是很漂亮,它会稍微慢一些,但它在列上工作。

这假设你已经阅读了使用df = pd.read_csv(filename)的excel文件