我有一个数据集,它有许多列,我想基于该数据集上的两列创建一个新列。你知道吗
train_data[['CtpJobId', 'SegmentId']]
CtpJobId SegmentId
0 qa1-9epx-dk1 347772
1 qa1-9epx-dv1 347774
2 qa1-9epx-dv1 347777
3 qa1-9epx-dv1 347780
4 qa1-9epx-dv1 347783
5 qa1-9epx-dv1 347786
6 qa1-9epx-dv1 347789
7 qa1-9epx-dv1 347792
8 qa1-9epx-e01 347794
9 qa1-9epx-eb2 347795
10 qa1-9epx-ez1 347796
11 qa1-9epx-f32 347797
12 qa1-9epx-fi1 347798
现在我想创建一个名为numberOfSegment的新列,例如,如果同一个jobId有多个segmentId,则聚合该segmentId并将其总和插入到新列中。你知道吗
CtpJobId SegmentId numberOfSegment
0 qa1-9epx-dk1 347772 1
1 qa1-9epx-dv1 347774 7
2 qa1-9epx-dv1 347777 7
3 qa1-9epx-dv1 347780 7
4 qa1-9epx-dv1 347783 7
5 qa1-9epx-dv1 347786 7
6 qa1-9epx-dv1 347789 7
7 qa1-9epx-dv1 347792 7
8 qa1-9epx-e01 347794 1
9 qa1-9epx-eb2 347795 1
10 qa1-9epx-ez1 347796 1
11 qa1-9epx-f32 347797 1
我做了一个方面,但它给错了
train_data['NumberOfSegment'] = train_data.groupby('CtpJobId')['SegmentId'].sum()
train_data[['CtpJobId','NumberOfSegment']]
CtpJobId NumberOfSegment
0 qa1-9epx-dk1 NaN
1 qa1-9epx-dv1 NaN
2 qa1-9epx-dv1 NaN
3 qa1-9epx-dv1 NaN
4 qa1-9epx-dv1 NaN
5 qa1-9epx-dv1 NaN
6 qa1-9epx-dv1 NaN
7 qa1-9epx-dv1 NaN
8 qa1-9epx-e01 NaN
9 qa1-9epx-eb2 NaN
10 qa1-9epx-ez1 NaN
有人能帮我吗?提前谢谢
你需要
groupby
和transform
您还可以将
map
结果value_counts
转换为“CtpJobId”:您需要将transform与
'count'
一起使用。你知道吗输出:
相关问题 更多 >
编程相关推荐