是否有按特定列值将 pandas.dataframe 对象拆分为多个子数据帧的函数?例如,如果我有
A 1
B 2
A 3
B 4
我想要的结果如下:
A 1
A 3
和
B 2
B 4
在 R 中,它是拆分函数。它是如何在python中完成的?我知道我可以在 forloop 中使用子集。但是有没有一个函数可以做到这一点?谢谢。
最佳答案
您可以使用 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
关于python按列拆分pd数据帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40197677/