按特定日期过滤日期框架

时间:2020-09-30 19:49:02

标签: python pandas csv datetime

我有一个csv文件,其中包含德语格式的日期:

date,D11,D21,D31,D41
19.03.2018 00:00:00,6,4,6,2
19.03.2018 01:00:00,5,8,5,1
20.03.2018 00:00:00,2,2,3,0
20.03.2018 01:00:00,2,5,4,1
21.03.2018 00:00:00,3,7,8,3
21.03.2018 01:00:00,18,22,19,3
22.03.2018 00:00:00,32,69,47,10
22.03.2018 01:00:00,105,105,69,32
23.03.2018 00:00:00,117,134,106,57
23.03.2018 01:00:00,97,83,95,73

我想按特定日期获取行。为了获得此输出:

date,D11,D21,D31,D41
21.03.2018 00:00:00,3,7,8,3
21.03.2018 01:00:00,18,22,19,3

我尝试过:

import pandas as pd
from datetime import datetime
df = pd.read_csv('myData.csv')
df.loc[datetime.date(year=2018,month=3,day=21):datetime.date(year=2018,month=3,day=21)]

不幸的是,我收到TypeError:

TypeError: descriptor 'date' of 'datetime.datetime' object needs an argument

1 个答案:

答案 0 :(得分:1)

不要使用datetime对象,它不能与Pandas很好地配合使用。您可以只使用字符串:

# read csv
df = pd.read_csv('myData.csv',
                 index_col=['date'], parse_dates=True)

df.loc['2018-03-21':'2018-03-22']

或者,如果您只需要日期为2018-03-21的行:

df.loc['2018-03-21']

输出:

                     D11  D21  D31  D41
date                                   
2018-03-21 00:00:00    3    7    8    3
2018-03-21 01:00:00   18   22   19    3
相关问题