python - 将 Pandas 列转换为小时和分钟
问题描述
我在 Pandas DataFrame 中有一个整数格式的字段。如何转换为 DateTime 格式并将列附加到我的 DataFrame?具体来说,我需要几小时和几分钟。
例子:
- 数据帧名称: df
- 作为列表的列: df.index
- dtype ='int64'
- df.index 中的样本数据-- [0, 15, 30, 45, 100, 115, 130, 145, 200...2300, 2315, 2330, 2345]
我试过pd.to_datetime(df.index, format='')
了,但它返回了错误的格式。
解决方案
您有一个索引,其时间值是由整数表示的 HHMM。为了将其转换为 datetime dtype,您必须首先制作可以通过该to_datetime()
方法正确转换的字符串。
time_strs = df.index.astype(str).str.zfill(4)
这会将所有整数值转换为用零填充到 4 个字符的字符串,例如15
变成字符串。"0015"
现在您可以使用该格式"%H%M"
转换为日期时间对象:
pd.to_datetime(time_strs, format="%H%M")
然后使用 datetime 对象的方法来访问小时和分钟。