熊猫groupby数字为新列

好吧

我有一个1000行记录的df列“天”。

如果天数少于7.0天(0-7),则将其设置为“ 1-6天”

如果天数大于7.1但小于14.0天(7.1-14.0),则将其分组为“ 7-14天”

如果天数大于或等于15天,则分组为“> 14天”

如何创建新列“ Days_Group”以表示天分组?

e.g of days values:
1 3.0
2 4.6
3 14.9
4 7.1
5 15.1
6 109
耶斯列尔

我认为需要cut

import numpy as np

df['Days_Group'] = pd.cut(df['days'],
                          bins=[0,7,14,np.inf], 
                          labels=['1-6 days','7-14 days','> 14 days'],
                          include_lowest=True)
print (df)
    days Days_Group
1    3.0   1-6 days
2    4.6   1-6 days
3   14.9  > 14 days
4    7.1  7-14 days
5   15.1  > 14 days
6  109.0  > 14 days

df['Days_Group'] = pd.cut(df['days'],
                          bins=[0,7,14, pd.np.inf], 
                          labels=['1-6 days','7-14 days','> 14 days'],
                          include_lowest=True)
print (df)
    days Days_Group
1    3.0   1-6 days
2    4.6   1-6 days
3   14.9  > 14 days
4    7.1  7-14 days
5   15.1  > 14 days
6  109.0  > 14 days

编辑:如果timedeltas在days

print (df)
               days
1   3 days 00:00:00
2   4 days 14:24:00
3  14 days 21:36:00
4   7 days 02:24:00
5  15 days 02:24:00
6 109 days 00:00:00

df['days'] = df['days'].dt.total_seconds() / 24 / 3600
print (df)
    days
1    3.0
2    4.6
3   14.9
4    7.1
5   15.1
6  109.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected]com 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章