1
나는이처럼 보이는 dataframe가 있다고 가정하자 GROUPBY 단어의 평균 수를 계산 :팬더는
df = pd.DataFrame({'id': [1,1,1,1,2,2,2,3,4,4,4,4,4],
'feedback': ['one word', np.nan, np.nan, 'test',
'second', np.nan, 'test 2',
np.nan,
'fourth', 'multiple words', 'test 1 2 3', 'things', np.nan]})
print(df)
id feedback
0 1 one word
1 1 NaN
2 1 NaN
3 1 test
4 2 second
5 2 NaN
6 2 test 2
7 3 NaN
8 4 fourth
9 4 multiple words
10 4 test 1 2 3
11 4 things
12 4 NaN
좀 집계 값을 계산하려는 각 id
에 대한 계산
- 행
- 각각에 대해 피드백을 제공 한 행 수
id
- 에 대한 피드백의 평균 단어 수
id
내 원하는 출력은 다음과 같습니다
id count complete avg_words
0 1 4 2 1.5
1 2 3 2 1.5
2 3 1 0 NaN
3 4 5 4 2.0
I이 수행 다음 코드 마지막 포인트를 제외한 모든 :
df.groupby(['id']).agg({'id': 'count',
'feedback': ['count', lambda x: len(x)]}).reset_index()
나에게 제공합니다
id feedback
count count <lambda>
0 1 4 2 4
1 2 3 2 3
2 3 1 0 1
3 4 5 4 5
을
모든 것이 정확합니다. (인덱스도 약간 이상하지만 작은 사안인데)
람다 함수는 자리 표시 자입니다. 각 id
에 대해 제공된 피드백의 평균 단어 수를 어떻게 계산합니까?