python-2.7 - Pandas:根据空行拆分数据框

标签 python-2.7 pandas dataframe group-by pandas-groupby

我有以下数据框。

身份证 A B C
1 34353 917998 x
2 34973 980340 ×
3 87365 498097 x
4 98309 486547 x
5 87699 475132
6 52734 4298894
7 8749267 4918066 ×
8 89872 18103
9 589892 4818086 年
10 765 4063 岁
11 32369 418165 年
12 206 2918137
13 554 3918072
14 1029 1918051 x
15 2349243 4918064


对于每组空行,例如5,6 我想创建一个新的数据框。需要产生多个数据帧。如下所示:

编号 A B
5 87699 475132
6 52734 4298894

编号 A B
8 89872 18103


编号 A B
12 206 2918137
13 554 3918072


编号 A B
15 2349243 4918064

最佳答案

isnull = df.C.isnull()
partitions = (isnull != isnull.shift()).cumsum()

gb = df[isnull].groupby(partitions)

在这一点上,我们已经完成了为每个连续的 NaN 组创建一个单独的数据帧的目标。在 df .它们可以通过 gb.get_group() 访问gb.groups 中每个键的方法

为了验证,我们将连接显示。
keys = gb.groups.keys()
dfs = pd.concat([gb.get_group(g) for g in keys], keys=keys)
dfs

enter image description here
df 的设置

我使用了@Alberto Garcia-Raboso 的读者
import io
import pandas as pd

# Create your sample dataframe
data = io.StringIO("""\
id       A        B        C   
1      34353    917998     x        
2      34973    980340     x      
3      87365    498097     x      
4      98309    486547     x      
5      87699    475132         
6      52734    4298894         
7      8749267  4918066    x    
8      89872    18103         
9      589892   4818086    y    
10     765      4063       y 
11     32369    418165     y
12     206      2918137    
13     554      3918072    
14     1029     1918051    x
15     2349243  4918064
""")
df = pd.read_csv(data, delim_whitespace=True)

关于python-2.7 - Pandas:根据空行拆分数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38316490/

相关文章:

保存图像时 Python Pillow 编码器错误 -2

python - 如何为 pandas groupby 设计 agg 函数

Python/Pandas - 根据其他数据帧的索引进行过滤

python - 与使用 PyODBC 查询数据库的同事共享 Python .exe 时,是否只需要下载适用于 SQL Server 的 ODBC 驱动程序?

python - Python Pandas 是否有办法指定一个列来计算值组合的每次出现?

regex - 如何修改ip :port?的正则表达式

python - Kivy 按钮小部件 : Attribute Error, 没有属性 'fbind'

python - 如何修复我的 pygame 项目中 Python 二进制文件中的编码错误?

python - 将 Pandas Dataframe 转换为嵌套字典

python - 如何根据时间间隔将时间 Indexed Dask 数据帧输出到 csv