假设有如下的DataFrame:
import pandas as pd
df = pd.DataFrame({
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [5, 4, 3, 2, 1, 6, 7, 8]
})
print(df)
输出:
A B C D
0 foo one 1 5
1 bar one 2 4
2 foo two 3 3
3 bar three 4 2
4 foo two 5 1
5 bar two 6 6
6 foo one 7 7
7 foo three 8 8
要按A列值将DataFrame df拆分,可以使用groupby()方法:
grouped = df.groupby('A')
for name, group in grouped:
print(f"Group name: {name}")
print(group)
输出:
Group name: bar
A B C D
1 bar one 2 4
3 bar three 4 2
5 bar two 6 6
Group name: foo
A B C D
0 foo one 1 5
2 foo two 3 3
4 foo two 5 1
6 foo one 7 7
7 foo three 8 8
可以看到,DataFrame已经按照A列的值进行了拆分。