简体   繁体   English

按 date_range 从 DataFrame 中选择行

[英]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_indexLEIST_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

Or loc :或者loc

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM