我有这个数据框:
Char1 Char2 Char3
0 2 2 3
1 2 3 3
2 2 3 3
3 2 2 2
我需要创建三列(
_1
,_2
,_3
),每一行分别统计值为1、2和3的出现次数。因此输出结果如下:
Char1 Char2 Char3 _1 _2 _3
0 2 2 3 0 2 1
1 2 3 3 0 1 2
2 2 3 3 0 1 2
3 2 2 2 0 3 0
例如:
- 列
_1
始终等于0,因为任何一行中都没有1 - 对于列
_2
:- 在第一行中等于2,因为第一行中有两个2
- 在第二行中等于1,因为第二行中有一个2
- 以此类推......
我该如何用Python实现这段代码?
我尝试了以下代码(仅针对_1
):
df['_1'] = df[df.Char1 == 1].sum() + df[df.Char2 == 1].sum() + df[df.Char3 == 1].sum()
但我得到了“NaN”的结果。
DF构造函数:
df = pd.DataFrame({'Char1':[2,2,2,2], 'Char2':[2,3,3,2], 'Char3':[3,3,3,2]})