我有一些需要分析的csv文件。 csvs中有一个时间日期字段。以下是原始列的格式;

2017/02/17-12:56
2017/02/17-12:58
2017/02/17-1:00
2017/02/17-1:02
2017/02/17-1:04
2017/02/17-1:06


如您所见,它的时钟为12小时。我不确定'-'是否在解析时引起我的问​​题,所以我已经厌倦了将其剥离,但是由于某种原因它不会剥离它,这就是我的疲倦:

df['TimeDate'] = df['TimeDate'].map(lambda x: x.rstrip('-')) # doesnt strip

df['TimeDate'] = pd.to_datetime(df['TimeDate'], format ='%Y/%m/%d-%I:%M')
#error: time data 'TimeDate' does not match format '%Y/%m/%d-%I:%M'

df.TimeDate = pd.to_datetime(df.TimeDate.str.strip('-'), format='%Y/%m/%d-%I:%M')
#error: time data 'TimeDate' does not match format '%Y/%m/%d-%I:%M'

df['TimeDate'] = df['TimeDate'].astype('datetime64[ns]')
#error: Error parsing datetime string "2017/03/14-11:32" at position 4


我不确定该怎么办。任何帮助深表感谢。
谢谢

最佳答案

如果要使用lambda

import pandas
l = """2017/02/17-12:56
2017/02/17-12:58
2017/02/17-1:00
2017/02/17-1:02
2017/02/17-1:04
2017/02/17-1:06"""



p = pandas.DataFrame(l.split('\n'))

p = p.apply(lambda x: pandas.to_datetime(x))

>>p[0]
0   2017-02-17 12:56:00
1   2017-02-17 12:58:00
2   2017-02-17 01:00:00
3   2017-02-17 01:02:00
4   2017-02-17 01:04:00
5   2017-02-17 01:06:00
Name: 0, dtype: datetime64[ns]


编辑-字符串格式不起作用,请尝试此

import pandas

l = """2017/02/17-12:56
2017/02/17-12:58
2017/02/17-1:00
2017/02/17-1:02
2017/02/17-1:04
2017/02/17-1:06"""
p = pandas.Series(l.split('\n'))
df = p.to_frame('DateTime')

df['Date'] = df['DateTime'].str.split('-').str.get(0)
df['time'] = df['DateTime'].str.split('-').str.get(1)
df['TimeDate'] = pandas.to_datetime(df['Date'] + ' ' + df['time'])

df

关于python - 解析到 Pandas 日期时间的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42853467/

10-12 22:49