根据其他列的值创建panda列

时间:2017-01-14 18:15:20

标签: python database pandas

所以我正在使用看起来像这样的熊猫数据框:

Current Panda Table

我想在给定的一周内为每个单独的属性转换所有时间的总和,我的想法是将其附加到数据框,如下所示:

Dataframe2

然后为了简化操作,我将创建一个如下所示的新数据框:

Property Name     Week         Total_weekly_time
A                 1            60
A                 2            xx
B                 1            xx

等。等

我是熊猫的新手,试图了解这些来龙去脉。任何答案都必须得到赞赏以及更好地学习熊猫的参考。

1 个答案:

答案 0 :(得分:1)

如果transform之后需要与df相同维度的新列,我认为您需要groupby

df['Total_weekly_time'] = df.groupby(['Property Name', 'Week #'])['Duration']
                            .transform('sum')
print (df)
   Property Name  Week #  Duration  Total_weekly_time
0              A       1        10                 60
1              A       1        10                 60
2              A       2         5                  5
3              B       1        20                 70
4              B       1        20                 70
5              B       1        20                 70
6              C       2        10                 10
7              C       3        30                 50
8              A       1        40                 60
9              A       4        40                 40
10             B       1         5                 70
11             B       1         5                 70
12             C       3        10                 50
13             C       3        10                 50

Pandas docs