Python 如何在pandas中打印CSV中的某些行

Python 如何在pandas中打印CSV中的某些行,python,python-3.x,pandas,csv,datetime,Python,Python 3.x,Pandas,Csv,Datetime,我的问题是,我有一个超过40000行的大数据帧,现在我想选择2013-01-01 00:00:00到2013-31-12 00:00:00的行 print(df.loc[df['localhour'] == '2013-01-01 00:00:00']) 这是我现在的代码,但我不能选择打印的间隔。。。有什么想法吗 创建datetime对象,然后应用以下条件: print(df) date 0 2013-01-01 1 2014-03-01 2 2011-10-01 3 201

我的问题是,我有一个超过40000行的大数据帧,现在我想选择2013-01-01 00:00:00到2013-31-12 00:00:00的行

print(df.loc[df['localhour'] == '2013-01-01 00:00:00'])

这是我现在的代码,但我不能选择打印的间隔。。。有什么想法吗

创建datetime对象,然后应用以下条件:

print(df)

date
0   2013-01-01
1   2014-03-01
2   2011-10-01
3   2013-05-01

df['date']=pd.to_datetime(df['date'])
df['date'].loc[(df['date']<='2013-12-31 00:00:00') & (df['date']>='2013-01-01 00:00:00')]

一种方法是将索引设置为
datetime
,然后将
pd.DataFrame.loc
与字符串索引器一起使用:

df = pd.DataFrame({'Date': ['2013-01-01', '2014-03-01', '2011-10-01', '2013-05-01'],
                   'Var': [1, 2, 3, 4]})

df['Date'] = pd.to_datetime(df['Date'])

res = df.set_index('Date').loc['2010-01-01':'2013-01-01']

print(res)

            Var
Date           
2013-01-01    1
2011-10-01    3

您可以使用
datetime
对象,比较日期是否比以前低或大。这意味着,如果它们在特定的时间间隔内,您也可以对它们进行比较。以下解决方案之一是否有帮助?请随意接受(在左侧打勾),或要求澄清。感谢您的解决方案,但我想打印2013-01-01 00:00到2013-31-12 00:00的全年。此解决方案将在该年之间的每个日期使用。我展示的示例恰好在该年范围内只有两个日期。
df = pd.DataFrame({'Date': ['2013-01-01', '2014-03-01', '2011-10-01', '2013-05-01'],
                   'Var': [1, 2, 3, 4]})

df['Date'] = pd.to_datetime(df['Date'])

res = df.set_index('Date').loc['2010-01-01':'2013-01-01']

print(res)

            Var
Date           
2013-01-01    1
2011-10-01    3