Pandas ValueError“时间数据'nan'与格式不匹配”,当使用“read_csv”和“date\u parser”和“comment”时

2024-09-28 23:08:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是:python3.7.2和Pandas 0.24.2 我试着读下面的数据(数据.txt). 第一列由空格分隔,应将其解析为datetime对象:

       #00:00:00               col0       col1
       2019-03-28_08:58:00     1064      31965
       2019-03-28_09:08:00     1084      32565
       !2019-03-28_09:18:00    1104      33165
       2019-03-28_09:28:00     1124      33765

与熊猫一起读_csv为:

^{pr2}$

所有以特殊字符开头的行(此处:!)应该跳过。它可以是任何其他字符。但是我总是收到这样的错误:

ValueError: time data 'nan' does not match format '%Y-%m-%d_%H:%M:%S'

我很感激你的任何想法


Tags: csv数据对象txtpandasdatetimetime错误
2条回答

试试这个方法:

df.columns = ["date", "c1", "c2"]
df.head()

date    c1  c2
0   2019-03-28_08:58:00 1064    31965
1   2019-03-28_09:08:00 1084    32565
2   2019-03-28_09:18:00 1104    33165
3   2019-03-28_09:28:00 1124    33765

df.dtypes
date    object
c1       int64
c2       int64
dtype: object

df.date = pd.to_datetime(df.date, format='%Y-%m-%d_%H:%M:%S')

df.dtypes

date    datetime64[ns]
c1               int64
c2               int64
dtype: object

之后,您还可以执行以下操作来提取年份、小时或日期,例如:日期日期.年份 日期日期.小时或df.dt.日期.日期

您提供的示例代码对我来说运行得很好。我使用的Pandas版本与您和python3.7相同:

It's working...

我从您提供的输入文件中删除了多余的空白:

#00:00:00 col0 col1
2019-03-28_08:58:00 1064 31965
2019-03-28_09:08:00 1084 32565
!2019-03-28_09:18:00 1104 33165
2019-03-28_09:28:00 1124 33765

相关问题 更多 >