Python如何通过列来分割pd数据框

3
有没有一种函数可以按特定列值将pandas.dataframe对象分成多个子数据帧? 例如,如果我有
A   1
B   2
A   3
B   4

我希望得到如下结果:
A   1
A   3

并且。
B   2
B   4

在Python中,可以使用split函数实现。我知道可以在for循环内使用subset,但是否有一个函数可以实现呢?谢谢。
1个回答

4
您可以使用列表推导式结合 groupby() 方法来提取由单个 ind 值组成的子数据框列表:
import pandas as pd
from StringIO import StringIO

df = pd.read_csv(StringIO("""A   1
B   2
A   3
B   4"""), sep = "\s+", names=['ind', 'value'])

lst = [g for _, g in df.groupby('ind')]

lst[0]
# ind  value
#0  A      1
#2  A      3

lst[1]
# ind  value
#1  B      2
#3  B      4

这正是我需要的!非常感谢你! - NewbieDave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接