对于那些对PD有更好了解的人,我确定我想要做的事情相当简单,但我只是坚持改造:
+---------+------------+-------+
| Trigger | Date | Value |
+---------+------------+-------+
| 1 | 01/01/2016 | a |
+---------+------------+-------+
| 2 | 01/01/2016 | b |
+---------+------------+-------+
| 3 | 01/01/2016 | c |
+---------+------------+-------+
...etc, into:
+------------+---------------------+---------+---------+---------+
| Date | #of triggers | count a | count b | count c |
+------------+---------------------+---------+---------+---------+
| 01/01/2016 | 3 | 1 | 1 | 1 |
+------------+---------------------+---------+---------+---------+
| 02/01/2016 | 5 | 2 | 1 | 2 |
+------------+---------------------+---------+---------+---------+
... and so on
问题是,我对如何实现这一点没有血腥的想法。 我已经搜索了SO,但我似乎无法找到任何适合我具体情况的内容。
我认为我必须按日期对所有内容进行分组,但是一旦完成,我需要做些什么才能获得剩余的列?
初始DF是从SQL Alchemy查询对象加载的,然后我想操纵它以获得上面描述的结果。如何做到这一点?
由于
答案 0 :(得分:2)
$1 - $2
答案 1 :(得分:1)
您可以将GroupBy.size
与unstack
一起使用,参数git ls-files -v . | grep ^S
也很有用:
sort=False
df1 = df.groupby(['Date','Value'])['Value'].size().unstack(fill_value=0) df1['Total'] = df1.sum(axis=1) cols = df1.columns[-1:].union(df1.columns[:-1]) df1 = df1[cols] print (df1) Value Total a b c Date 01/01/2016 3 1 1 1
和size
之间的差异是:
size
计算count
个值,count
则不计算。