根据条件和其他列的汇总值创建新的数据框列

时间:2019-04-24 13:52:14

标签: python pandas dataframe aggregate

我得到了如下数据框:

| DATETIME STR     | VALUE |
|------------------|-------|
| 23/04/2019 05:00 | 500   |
| 23/04/2019 05:00 | 300   |
| 23/04/2019 05:00 | 150   |
| ................ | ...   |
| 23/04/2019 23:55 | ...   |

我想遍历数据框一次,并添加一个新列,该列具有每个单元格占总数的百分比。总数在不同时间是不同的。

例如,2019年4月23日05:00的上述百分比为:

| DATETIME STR     | VALUE | PERCENTAGE |
|------------------|-------|------------|
| 23/04/2019 05:00 | 500   | 52.63 %    |
| 23/04/2019 05:00 | 300   | 31.58 %    |
| 23/04/2019 05:00 | 150   | 15.79 %    |
| 23/04/2019 10:00 | 600   | ..... %    |
| ................ | ...   | ..... %    |
| 23/04/2019 23:55 | ...   | ..... %    |

我该怎么做?

我想我正在看类似的东西:

dataframe["PERCENTAGE"] = (100 * dataframe["VALUE"])/sum_of_same_date

我无法弄清楚如何在填充新列的数据帧中同时为每个要填充的单元格计算sum_of_same_date

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试使用transform

dataframe["PERCENTAGE"] = (100 * dataframe["VALUE"])/dataframe.groupby('DATETIME STR')['VALUE'].transform('sum')