在空行上拆分Pandas数据帧

2024-06-06 12:11:36 发布

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

我有一个大数据帧,我需要在空行上拆分。在

下面是一个数据帧的简化示例:

    A   B   C
0   1   0   International
1   1   1   International
2   NaN 2   International
3   1   3   International
4   1   4   International
5   8   0   North American
6   8   1   North American
7   8   2   North American
8   8   3   North American
9   NaN NaN NaN
10  1   0   Internal
11  1   1   Internal
12  6   0   East
13  6   1   East
14  6   2   East
...

如您所见,第9行是空白的。我需要做的是将第0行到第8行放到不同的数据帧中,并将第10行放到下一个空白处,这样最后我就有几个数据帧了。注意,当寻找空行时,我需要整行都是空白的。在

下面是我用来查找空格的代码:

^{pr2}$

当我在简化的DF上测试它时,这段代码可以工作,但是,当然,我的实际数据帧的列比['A','B','C']多得多

我怎样才能找到下一个空白行(或者我在上面做的,所有的空白行一次)而不必指定我的列名?在

谢谢


Tags: 数据代码示例nan空白internal空格american
1条回答
网友
1楼 · 发布于 2024-06-06 12:11:36

IIUC,使用pd.isnull+np.split

df_list = np.split(df, df[df.isnull().all(1)].index) 

for df in df_list:
    print(df, '\n') 

     A    B               C
0  1.0  0.0   International
1  1.0  1.0   International
2  NaN  2.0   International
3  1.0  3.0   International
4  1.0  4.0   International
5  8.0  0.0  North American
6  8.0  1.0  North American
7  8.0  2.0  North American
8  8.0  3.0  North American 

      A    B         C
9   NaN  NaN       NaN
10  1.0  0.0  Internal
11  1.0  1.0  Internal
12  6.0  0.0      East
13  6.0  1.0      East
14  6.0  2.0      East 

首先,获取整行为null的索引,然后使用该索引将数据帧拆分为块。np.split很好地处理数据帧。在

相关问题 更多 >