[英]Select rows from a DataFrame by date_range
i have the following dataframe:我有以下数据框:
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
. . .
. .
.
387976 ZPAF 2016-02-12 2016-02-29 CP B 100686 S
387977 ZPAF 2016-02-12 2016-02-29 CP B 100686 S
387978 ZPAF 2016-02-12 2016-02-29 CP E 100712 S
387979 ZPAF 2016-02-12 2016-02-29 CP B 100712 S
387980 ZPAF 2016-02-12 2016-02-29 CP E 100735 S
387981 ZPAF 2016-02-12 2016-02-29 CP B 100735 S
387982 ZPAF 2016-02-12 2016-02-29 CP B 100735 S
387983 ZPAF 2016-02-12 2016-02-29 CP E 100748 S
387984 ZPAF 2016-02-12 2016-02-29 CP B 100748 S
387985 ZPAF 2016-02-12 2016-02-29 CP E 100760 S
now i want to select only the rows with the date 2015-05-31.现在我只想选择日期为 2015-05-31 的行。
i tried little bit around to handle it with date_range but i always get errors:我试着用 date_range 处理它,但我总是得到错误:
ValueError: Length of values does not match length of index
ValueError:值的长度与索引的长度不匹配
or或
ValueError: Must specify two of start, end, or periods
ValueError: 必须指定开始、结束或句点中的两个
my idea was that:我的想法是:
data_faktura['LEIST_DAT'] = pd.date_range('2016-01-31', '2016-01-31')
but then i get an error!但后来我得到一个错误!
How can i fix or solve that?我该如何解决或解决这个问题?
You can set_index
from column LEIST_DAT
and then select by ix
:您可以从
set_index
列LEIST_DAT
,然后按ix
选择:
#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
You can also select by start and end date:您还可以按开始和结束日期进行选择:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.