是否有按特定列值将 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/

10-12 20:10