Python 3.x 使用dataframe timedelta列格式化人类可读的

Python 3.x 使用dataframe timedelta列格式化人类可读的,python-3.x,pandas,Python 3.x,Pandas,返回: data = df.groupby(['Jahr','Monat', 'Kunde'])['Dauer'].sum().reset_index(name='TD') TD=时间增量 我希望在几小时内收到信息,而不是几天 我试过这样的方法: data['TD']/pd.Timedelta('1小时') 这将返回10天04:05:00244.083333(十进制小时),但我需要244.05(小时和分钟) 我找到了一些关于如何转换它的技巧,但是有没有好的方法可以在data=df.groupb

返回:

data = df.groupby(['Jahr','Monat', 'Kunde'])['Dauer'].sum().reset_index(name='TD')
TD=时间增量

我希望在几小时内收到信息,而不是几天

我试过这样的方法:
data['TD']/pd.Timedelta('1小时')

这将返回
10天04:05:00
244.083333
(十进制小时),但我需要
244.05
(小时和分钟)

我找到了一些关于如何转换它的技巧,但是有没有好的方法可以在
data=df.groupby(['Jahr','Monat','Kunde'])['Dauer'].sum().reset_index(name='TD')

编辑2019-10-07,14:55:

Jahr | Monat | Kunde | TD
2019 | 7     | C1    | 0 days 08:35:00
2019 | 8     | C1    | 10 days 04:05:00
2019 | 8     | C2    | 0 days 03:25:00
2019 | 9     | C1    | 10 days 09:15:00
2019 | 9     | C6    | 0 days 01:45:00
2019 | 9     | C3    | 0 days 02:30:00
2019 | 9     | C5    | 0 days 00:15:00
应该成为

Jahr | Monat | Kunde | TD
2019 | 7     | C1    | 0 days 08:35:00
2019 | 8     | C1    | 10 days 04:05:00
2019 | 8     | C2    | 0 days 03:25:00
2019 | 9     | C1    | 10 days 09:15:00
2019 | 9     | C6    | 0 days 01:45:00
2019 | 9     | C3    | 0 days 02:30:00
2019 | 9     | C5    | 0 days 00:15:00

首先按删除分和秒,转换为字符串并按添加零,然后使用转换为字符串的slicinf TimeDelta添加分钟:

Jahr | Monat | Kunde | TD
2019 | 7     | C1    | 08:35:00
2019 | 8     | C1    | 244:05:00
2019 | 8     | C2    | 03:25:00
2019 | 9     | C1    | 249:15:00
2019 | 9     | C6    | 01:45:00
2019 | 9     | C3    | 02:30:00
2019 | 9     | C5    | 00:15:00

将返回10天04:05:00 244.083333,但我需要244.05
-为什么
05
?这是一份我没有影响的客户协议。嗯,有点奇怪,你能从所有数据中添加导出的输出吗?
floor_h = (data['TD'].dt.floor('H').div(pd.Timedelta('1 hours'))
                   .astype(int)
                   .astype(str)
                   .str.zfill(2))
data['TD'] = floor_h + ':' + data['TD'].astype(str).str[-15:-10]
print (data)
   Jahr  Monat Kunde         TD
0  2019      7    C1   08:35:00
1  2019      8    C1  244:05:00
2  2019      8    C2   03:25:00
3  2019      9    C1  249:15:00
4  2019      9    C6   01:45:00
5  2019      9    C3   02:30:00
6  2019      9    C5   00:15:00