python按列拆分pd数据帧

2024-04-25 04:28:20 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一个函数可以拆分1.数据帧对象转换为多个子数据帧,按特定的列值?例如,如果我有

A   1
B   2
A   3
B   4

我希望结果如下:

A   1
A   3

以及

B   2
B   4

在R中,它是分裂函数。在python中是如何实现的?我知道我可以在forloop中使用子集。但是有没有一个函数能做到这一点呢?谢谢。你知道吗


Tags: 数据对象函数子集列值forloop
1条回答
网友
1楼 · 发布于 2024-04-25 04:28:20

可以使用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

相关问题 更多 >