我有一些需要分析的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/