Python 熊猫-将列转换为分钟值
嗨,我正在尝试“清理”一个数据集,该数据集有一个名为“Duration”的列。它有如下元素:Python 熊猫-将列转换为分钟值,python,pandas,Python,Pandas,嗨,我正在尝试“清理”一个数据集,该数据集有一个名为“Duration”的列。它有如下元素: 18 mins 34 mins 1 hr 51 mins 1 day 1 hr 1 day 2 hrs 32 mins 3 days 4 hrs 48 mins 换句话说,大多数条目都是数值(分钟),但有些条目具有表示日/小时文本的文本数据。我想把它们全部隐藏到几分钟之内 我如何在熊猫中实现这一点?理想情况下,我希望使用一些库/函数,以避免我必须标记字符串和手动解析/转换 到目前为止,我一直在努力
18 mins
34 mins
1 hr 51 mins
1 day 1 hr
1 day 2 hrs 32 mins
3 days 4 hrs 48 mins
换句话说,大多数条目都是数值(分钟),但有些条目具有表示日/小时文本的文本数据。我想把它们全部隐藏到几分钟之内
我如何在熊猫中实现这一点?理想情况下,我希望使用一些库/函数,以避免我必须标记字符串和手动解析/转换
到目前为止,我一直在努力
data['Duration'] = pd.Timedelta(data['Duration'])
但是我有一个
ValueError:值必须是Timedelta、字符串、整数、浮点、Timedelta
或敞篷车
错误请尝试以下操作:
In [99]: pd.to_timedelta(df['Duration'].replace(['mins','hr','hrs'],
['min','hour','hour'],
regex=True))
Out[99]:
0 0 days 00:18:00
1 0 days 00:34:00
2 0 days 01:51:00
3 1 days 01:00:00
4 1 days 02:32:00
5 3 days 04:48:00
Name: x, dtype: timedelta64[ns]
PS如果你有更多“不寻常”的缩写,你可能想做更多的替换…@user1361529,很高兴我能帮忙:-)太棒了!回答