Python 3.x 在Dataframe中切片列的特定行
在Pandas中的流动数据框中,我想提取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_
'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)的操作