Python 熊猫-将列转换为分钟值

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 换句话说,大多数条目都是数值(分钟),但有些条目具有表示日/小时文本的文本数据。我想把它们全部隐藏到几分钟之内 我如何在熊猫中实现这一点?理想情况下,我希望使用一些库/函数,以避免我必须标记字符串和手动解析/转换 到目前为止,我一直在努力

嗨,我正在尝试“清理”一个数据集,该数据集有一个名为“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
换句话说,大多数条目都是数值(分钟),但有些条目具有表示日/小时文本的文本数据。我想把它们全部隐藏到几分钟之内

我如何在熊猫中实现这一点?理想情况下,我希望使用一些库/函数,以避免我必须标记字符串和手动解析/转换

到目前为止,我一直在努力

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,很高兴我能帮忙:-)太棒了!回答