将字符串转换为带有空白数据的日期时间



我正在尝试将csv中的日期从字符串转换为日期时间对象。csv的格式为

date quantity
2010-01-01 10:10:10.276455   100  

代码为:

df = pd.read_csv('python test.txt',delim_whitespace=True,parse_dates=['date'])
df.info()

我得到错误"NoneType"对象不可下标";。提前谢谢。

我建议将CSV标头更改为以下内容:

date       time              quantity
2010-01-01 10:10:10.276455   100

然后,在假设文件有3列的情况下读取文件:

df = pd.read_csv('python test.txt', delim_whitespace=True)

最后,使用字符串串联和pd.to_datetime:生成所需的时间戳列

df['ts'] = pd.to_datetime(df['date'] + ' ' + df['time'], format='%Y-%m-%d %H:%M:%S.%f')

假设您想在多个空白上拆分(例如,而不是单个空白(,另一种方法可能是将分隔符设置为r"s{2,}",例如:

from io import StringIO
import pandas as pd
s = """date   value
2010-01-01 10:10:10.276455   100
"""
df = pd.read_csv(StringIO(s), delimiter=r"s{2,}")
df['date'] = pd.to_datetime(df['date'])
# df.info()
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 1 entries, 0 to 0
# Data columns (total 2 columns):
#  #   Column  Non-Null Count  Dtype         
# ---  ------  --------------  -----         
#  0   date    1 non-null      datetime64[ns]
#  1   value   1 non-null      int64         
# dtypes: datetime64[ns](1), int64(1)
# memory usage: 144.0 bytes

最新更新