Python 按日期范围从数据框中选择行
我有以下数据帧:Python 按日期范围从数据框中选择行,python,pandas,Python,Pandas,我有以下数据帧: FAK_ART FAK_DAT LEIST_DAT KD_CRM MW_BW EQ_NR MATERIAL \ 0 ZPAF 2015-05-18 2015-05-31 D E 100107 S 1 ZPAF 2015-05-18 2015-05-31 D B 100107 S 2 ZPAF 2015-05-18 20
FAK_ART FAK_DAT LEIST_DAT KD_CRM MW_BW EQ_NR MATERIAL \
0 ZPAF 2015-05-18 2015-05-31 D E 100107 S
1 ZPAF 2015-05-18 2015-05-31 D B 100107 S
2 ZPAF 2015-05-18 2015-05-31 D E 100108 S
3 ZPAF 2015-05-18 2015-05-31 D B 100108 S
4 ZPAF 2015-05-18 2015-05-31 D E 100109 S
5 ZPAF 2015-05-18 2015-05-31 D B 100109 S
6 ZPAF 2015-05-18 2015-05-31 D E 100110 S
7 ZPAF 2015-05-18 2015-05-31 D B 100110 S
8 ZPAF 2015-05-18 2015-05-31 D E 100111 S
。
.
现在,我只想选择日期为2015-05-31的行
我试着用date_range来处理它,但总是出现错误:
ValueError:值的长度与索引的长度不匹配
或
ValueError:必须指定两个开始、结束或期间
我的想法是:
data_faktura['LEIST_DAT'] = pd.date_range('2016-01-31', '2016-01-31')
但是我犯了一个错误
如何修复或解决此问题?您可以从列LEIST\u DAT
中选择:
或:
您还可以按开始和结束日期选择:
data_fakture = data_fakture.set_index('LEIST_DAT').ix['2015-05-31':'2016-02-29']
print (data_fakture)
FAK_ART FAK_DAT KD_CRM MW_BW EQ_NR MATERIAL
LEIST_DAT
2015-05-31 ZPAF 2015-05-18 D E 100107 S
2015-05-31 ZPAF 2015-05-18 D B 100107 S
2015-05-31 ZPAF 2015-05-18 D E 100108 S
2015-05-31 ZPAF 2015-05-18 D B 100108 S
2015-05-31 ZPAF 2015-05-18 D E 100109 S
2015-05-31 ZPAF 2015-05-18 D B 100109 S
2015-05-31 ZPAF 2015-05-18 D E 100110 S
2015-05-31 ZPAF 2015-05-18 D B 100110 S
2015-05-31 ZPAF 2015-05-18 D E 100111 S
2016-02-29 ZPAF 2016-02-12 CP B 100686 S
2016-02-29 ZPAF 2016-02-12 CP B 100686 S
2016-02-29 ZPAF 2016-02-12 CP E 100712 S
2016-02-29 ZPAF 2016-02-12 CP B 100212 S
2016-02-29 ZPAF 2016-02-12 CP E 100735 S
2016-02-29 ZPAF 2016-02-12 CP B 100735 S
2016-02-29 ZPAF 2016-02-12 CP B 100735 S
2016-02-29 ZPAF 2016-02-12 CP E 100748 S
2016-02-29 ZPAF 2016-02-12 CP B 100748 S
2016-02-29 ZPAF 2016-02-12 CP E 100760 S
无论数据类型是string还是datetime,以下内容都应起作用:
data\u fakture[data\u faktura['LEIST\u DAT']=='2016-01-31']
我必须在数据帧上再次分配吗?分配是什么意思?你不是在尝试过滤df吗?是的,我的意思是如果我必须这样做:data_faktura=data_faktura[data_faktura['LEIST_DAT']=='2016-01-31']是的,应该可以
#change 2016-02-29 to your datetime
data_fakture = data_fakture.set_index('LEIST_DAT').ix['2016-02-29']
print (data_fakture)
FAK_ART FAK_DAT KD_CRM MW_BW EQ_NR MATERIAL
LEIST_DAT
2016-02-29 ZPAF 2016-02-12 CP B 100686 S
2016-02-29 ZPAF 2016-02-12 CP B 100686 S
2016-02-29 ZPAF 2016-02-12 CP E 100712 S
2016-02-29 ZPAF 2016-02-12 CP B 100712 S
2016-02-29 ZPAF 2016-02-12 CP E 100735 S
2016-02-29 ZPAF 2016-02-12 CP B 100735 S
2016-02-29 ZPAF 2016-02-12 CP B 100735 S
2016-02-29 ZPAF 2016-02-12 CP E 100748 S
2016-02-29 ZPAF 2016-02-12 CP B 100748 S
2016-02-29 ZPAF 2016-02-12 CP E 100760 S
data_fakture = data_fakture.set_index('LEIST_DAT').loc['2016-02-29']
print (data_fakture)
FAK_ART FAK_DAT KD_CRM MW_BW EQ_NR MATERIAL
LEIST_DAT
2016-02-29 ZPAF 2016-02-12 CP B 100686 S
2016-02-29 ZPAF 2016-02-12 CP B 100686 S
2016-02-29 ZPAF 2016-02-12 CP E 100712 S
2016-02-29 ZPAF 2016-02-12 CP B 100712 S
2016-02-29 ZPAF 2016-02-12 CP E 100735 S
2016-02-29 ZPAF 2016-02-12 CP B 100735 S
2016-02-29 ZPAF 2016-02-12 CP B 100735 S
2016-02-29 ZPAF 2016-02-12 CP E 100748 S
2016-02-29 ZPAF 2016-02-12 CP B 100748 S
2016-02-29 ZPAF 2016-02-12 CP E 100760 S
data_fakture = data_fakture.set_index('LEIST_DAT').ix['2015-05-31':'2016-02-29']
print (data_fakture)
FAK_ART FAK_DAT KD_CRM MW_BW EQ_NR MATERIAL
LEIST_DAT
2015-05-31 ZPAF 2015-05-18 D E 100107 S
2015-05-31 ZPAF 2015-05-18 D B 100107 S
2015-05-31 ZPAF 2015-05-18 D E 100108 S
2015-05-31 ZPAF 2015-05-18 D B 100108 S
2015-05-31 ZPAF 2015-05-18 D E 100109 S
2015-05-31 ZPAF 2015-05-18 D B 100109 S
2015-05-31 ZPAF 2015-05-18 D E 100110 S
2015-05-31 ZPAF 2015-05-18 D B 100110 S
2015-05-31 ZPAF 2015-05-18 D E 100111 S
2016-02-29 ZPAF 2016-02-12 CP B 100686 S
2016-02-29 ZPAF 2016-02-12 CP B 100686 S
2016-02-29 ZPAF 2016-02-12 CP E 100712 S
2016-02-29 ZPAF 2016-02-12 CP B 100212 S
2016-02-29 ZPAF 2016-02-12 CP E 100735 S
2016-02-29 ZPAF 2016-02-12 CP B 100735 S
2016-02-29 ZPAF 2016-02-12 CP B 100735 S
2016-02-29 ZPAF 2016-02-12 CP E 100748 S
2016-02-29 ZPAF 2016-02-12 CP B 100748 S
2016-02-29 ZPAF 2016-02-12 CP E 100760 S