我有CSV文件,其中第二列指示格式为HHMMSS
的时间点。
ID;TIME
A;110500
B;090000
C;130200
这种情况给我提出了一些问题。
Panda是否有用小时、分钟和秒表示时间点的数据格式,但没有天、月。。。?
如何将这些字段转换为这样的格式?
在Python上,我会遍历字段。但我确信熊猫有更有效的方法。
如果没有没有没有日期的日期格式,我可以在该时间点添加一个日-月-年日期。
这是MWE
import pandas
import io
csv = io.StringIO('ID;TIMEnA;110500nB;090000nC;130200')
df = pandas.read_csv(csv, sep=';')
print(df)
中的结果
ID TIME
0 A 110500
1 B 90000
2 C 130200
但我想看到的是
ID TIME
0 A 11:05:00
1 B 9:00:00
2 C 13:02:00
或者更好地缩短的秒数
ID TIME
0 A 11:05
1 B 9:00
2 C 13:02
您可以像使用read_csv
中的参数date_parser
和time
加速器
df = pandas.read_csv(csv, sep=';',
parse_dates=[1], # need to know the position of the TIME column
date_parser=lambda x: pandas.to_datetime(x, format='%H%M%S').time)
print(df)
ID TIME
0 A 11:05:00
1 B 09:00:00
2 C 13:02:00
但在阅读后再做可能是很好的
df = (pandas.read_csv(csv, sep=';')
.assign(TIME=lambda x: pandas.to_datetime(x['TIME'], format='%H%M%S').dt.time)
#or lambda x: pandas.to_datetime(x['TIME'], format='%H%M%S').dt.strftime('%#H:%M')
)