gpt4 book ai didi

python - 按 date_range 从 DataFrame 中选择行

转载 作者:行者123 更新时间:2023-11-30 22:52:13 25 4
gpt4 key购买 nike

我有以下数据框:

       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

现在我只想选择日期为 2015-05-31 的行。

我尝试了一些方法来使用 date_range 来处理它,但我总是遇到错误:

ValueError: Length of values does not match length of index

ValueError: Must specify two of start, end, or periods

我的想法是:

data_faktura['LEIST_DAT'] = pd.date_range('2016-01-31', '2016-01-31')

但随后我收到错误!

我该如何修复或解决这个问题?

最佳答案

您可以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

或者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

您还可以按开始和结束日期进行选择:

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

关于python - 按 date_range 从 DataFrame 中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38699561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com