[英]How to groupby a pandas dataframe
我有一個像這樣的熊貓數據框
StudentID Grades
101 A
101 C
101 B
102 B
102 C
我需要以下輸出作為另一個數據框
StudentID Grades
101 A,B,C
102 B,C
如何在熊貓中做到這一點。 當我分組時,它返回一個分組對象而不是一個數據框
import pandas as pd
df = pd.DataFrame({
'StudentID': [101,101,101,102,102],
'Grades': ['A','C','B','B','C']
})
df.groupby('StudentID').Grades.agg(",".join)
您可以通過返回的groupby
對象訪問所需的DataFrame
:
import pandas as pd
df = pd.DataFrame({
'StudentID': [101,101,101,102,102],
'Grades': ['A','C','B','B','C']
})
grouped = df.groupby('StudentID')
for student_id, df_student in grouped:
print 'ID:', student_id
print df_student
輸出:
ID: 101
Grades StudentID
0 A 101
1 C 101
2 B 101
ID: 102
Grades StudentID
3 B 102
4 C 102
您還可以使用特定的密鑰訪問DataFrame
print grouped.get_group(101)
這將返回DataFrame
與所有StudentID
等於101。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.