Python 3.x 在Dataframe中切片列的特定行

Python 3.x 在Dataframe中切片列的特定行,python-3.x,pandas,dataframe,slice,Python 3.x,Pandas,Dataframe,Slice,在Pandas中的流动数据框中,我想提取'03/01'和'06/01'之间对应日期的列。我根本不想使用索引,因为我的输入是开始和结束日期。我怎么能这样做 A B 0 01/01 56 1 02/01 54 2 03/01 66 3 04/01 77 4 05/01 66 5 06/01 72 6 07/01 132 7 08/01 127 欢迎您使用布尔屏蔽,即: df[(df.A >= start_

在Pandas中的流动数据框中,我想提取
'03/01'
'06/01'
之间对应日期的列。我根本不想使用索引,因为我的输入是开始和结束日期。我怎么能这样做

      A       B
0   01/01   56
1   02/01   54
2   03/01   66
3   04/01   77
4   05/01   66
5   06/01   72
6   07/01   132
7   08/01   127

欢迎您使用布尔屏蔽,即:

df[(df.A >= start_date) && (df.A <= end_date)]

df[(df.A>=开始日期)&(df.A欢迎您使用布尔屏蔽,即:

df[(df.A >= start_date) && (df.A <= end_date)]

df[(df.A>=start_date)&(df.A首先使用daterange创建一个所需日期的列表。我添加2000年,因为您需要提供一年,这样才能工作,然后我会将其切断以获得所需字符串。在现实生活中,由于闰日之类的原因,您可能需要关注实际年份

date_start = '03/01'
date_end = '06/01'
dates = [x.strftime('%m/%d') for x in pd.date_range('2000/{}'.format(date_start), 
                        '2000/{}'.format(date_end), freq='D')]
日期现在等于:

['03/01',
 '03/02',
 '03/03',
 '03/04',
 .....
 '05/29',
 '05/30',
 '05/31',
 '06/01']
然后简单地使用isin参数,就完成了

df = df.loc[df.A.isin(dates)]
df

如果您的列是datetime列,我想您可以跳过列表理解中的strftime部分以获得正确的结果。

首先使用daterange创建所需日期的列表。我将添加2000年,因为您需要为此提供一年,然后我将其切断以获得所需的字符串。在现实生活中,您可能希望o由于闰日等原因,请注意实际年份

date_start = '03/01'
date_end = '06/01'
dates = [x.strftime('%m/%d') for x in pd.date_range('2000/{}'.format(date_start), 
                        '2000/{}'.format(date_end), freq='D')]
日期现在等于:

['03/01',
 '03/02',
 '03/03',
 '03/04',
 .....
 '05/29',
 '05/30',
 '05/31',
 '06/01']
然后简单地使用isin参数,就完成了

df = df.loc[df.A.isin(dates)]
df

如果您的列是datetime列,我想您可以跳过列表理解中的strftime部分以获得正确的结果。

我认为df[(df.a>=开始日期)&(df.A输出是什么,它与您的期望有什么不同?只是为了确定,A列的格式是否实际为datetime?它是dd/mm格式的日期时间。代码没有针对不同月份的日期进行排序。哦,如果您想对其进行排序,那么您可以执行类似于
df[(df.A>=开始日期)&(df.A)的操作[(df.A>=start_date)和(df.A)输出是什么,它与您的期望有什么不同?只是为了确定,A列的格式是否实际是datetime?它是dd/mm格式的日期时间。代码没有针对不同月份的日期进行排序。哦,如果您想对其进行排序,那么您可以执行类似于
df[(df.A>=start_date)和(df.A)的操作