正在尝试结合数据框中的功能以派生数据框中的新列
我有这个数据框
Id Author News_post Label
1 Jessica xxxxxxxxx 1
2 Adams xxxxxxxxx 1
3 Adams xxxxxxxxx 1
4 Mike xxxxxxxxx 0
5 James xxxxxxxxx 1
6 Mike xxxxxxxxx 1
7 Mike xxxxxxxxx 0
8 Paul xxxxxxxxx 0
9 Jessica xxxxxxxxx 0
10 Adams xxxxxxxxx 0
注意:Label
列中的1=TRUE
AND0=FALSE
Id Author Num_Post Num_True_Label Num_False_Label Mean
1 Adams 3 2 1 x
2 James 1 1 0 x
3 Jessica 2 1 1 x
4 Mike 2 0 1 x
5 Paul 1 0 0 x
使用transform,然后删除重复项,以便:
df['Num_Post']= df.groupby(['Author'])['Label'].transform('count')
df['Num_True_Label']= df.groupby(['Author'])['Label'].transform('sum')
df['Num_False_Label']= df['Num_Post']-df['Num_True_Label']
df['Mean']= df['Num_Post']/df['Num_True_Label']
最后:放下公仔并删除News_post
df.drop(columns=['News_post'], inplace=True)
df.drop_duplicates(subset='Author', keep='first').sort_values(by=['Author'])
结果:
Id Author Label Num_Post Num_True_Label Num_False_Label Mean
1 2 Adams 1 3 2 1 1.500000
4 5 James 1 1 1 0 1.000000
0 1 Jessica 1 2 1 1 2.000000
3 4 Mike 0 3 1 2 3.000000
7 8 Paul 0 1 0 1 inf
注意:更改定义的平均值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句