我有以下DataFrame:
item response
1 A
1 A
1 B
2 A
2 A
Run Code Online (Sandbox Code Playgroud)
我想添加一个对项目给出最多响应的列.这应该导致:
item response mostGivenResponse
1 A A
1 A A
1 B A
2 C C
2 C C
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情:
df["responseCount"] = df.groupby(["ItemCode", "Response"])["Response"].transform("count")
df["mostGivenResponse"] = df.groupby(['ItemCode'])['responseCount'].transform(max)
Run Code Online (Sandbox Code Playgroud)
但是,大多数的响应现在都是响应的计数,而不是响应本身.
df.groupby('item').response.transform(pd.Series.mode)
Out[28]:
0 A
1 A
2 A
3 C
4 C
Name: response, dtype: object
Run Code Online (Sandbox Code Playgroud)