如何总结一个稀疏的熊猫数据框?

时间:2020-08-31 23:22:13

标签: python pandas

我有一个看起来像这样的熊猫数据框:

df
            Date  A   B   C
0     2020-08-17  1   1   0
1     2020-08-17  1   0   0
2     2020-08-17  0   0   1
3     2020-08-18  0   1   0
4     2020-08-18  1   1   0
5     2020-08-19  0   0   1
...

A,B,C列的值为0或1。我已经过滤掉了只有零值的行,因此所有行都应至少有一个“ 1”。

首先,我想得到以下结果:

df2
            Date  A   B   C
0     2020-08-17  2   1   1
3     2020-08-18  1   2   0
4     2020-08-19  0   0   1
...

那我想得到这个结果:

df3
            Date  Summary
0     2020-08-17  A=2|B=1|C=1 
1     2020-08-18  A=1|B=2
2     2020-08-19  C=1
...

实现此目标的有效方法是什么?

1 个答案:

答案 0 :(得分:0)

首先我们要做

s1 = df.groupby('Date', as_index=False).sum()
Out[5]: 
         Date  A  B  C
0  2020-08-17  2  1  1
1  2020-08-18  1  2  0
2  2020-08-19  0  0  1

然后

s = s1.melt('Date')
s = s[s.value!=0]

s2 = (s.variable + '=' + s.value.astype(str)).groupby(s.Date).agg('|'.join).reset_index(name='col')
Out[17]: 
         Date          col
0  2020-08-17  A=2|B=1|C=1
1  2020-08-18      A=1|B=2
2  2020-08-19          C=1