python按列拆分pd数据框

标签 python pandas

是否有一个函数可以根据特定的列值将 pandas.dataframe 对象拆分为多个子数据帧?例如,如果我有

A   1
B   2
A   3
B   4

我想要的结果如下:

A   1
A   3

B   2
B   4

在R中,就是split函数。它是如何在 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/

相关文章:

python - 在Python中,我放入了print(),但仍然收到语法错误

python - 使用 pandas 从 CSV 中读取十进制表示形式的 float

python - Pandas:合并来自两个不同列表的多个数据帧

python - 找到具有最大总和的连续子集

python - 如何删除 Matplotlib 烛台图表中的周末?

python - Python 维护最好的通用函数实现是什么?

python - 将新角色添加到 azure 上的同一云服务

python - 从带有列表的列创建新列

python - 在 Pandas 分析报告中显示 "Other Values"

python - 如何在 python 中分离字段和路径 gps 坐标?