gpt4 book ai didi

python - 提取子DataFrame

转载 作者:行者123 更新时间:2023-11-30 22:38:51 35 4
gpt4 key购买 nike

我在 Pandas 中有这种数据框:

NaN
1
NaN
452
1175
12
NaN
NaN
NaN
145
125
NaN
1259
2178
2514
1

另一方面,我有另一个数据框:

1
2
3
4
5
6

我想将第一个数据帧分成不同的子数据帧,如下所示:

DataFrame 1:
1
DataFrame 2:
452
1175
12
DataFrame 3:

DataFrame 4:

DataFrame 5:
145
125
DataFrame 6:
1259
2178
2514
1

如何在没有循环的情况下做到这一点?

最佳答案

更新:感谢@piRSquared指出上述解决方案不适用于具有非数字索引的 DF/Series。这是更通用的解决方案:

dfs = [x.dropna()
for x in np.split(df, np.arange(len(df))[df['column'].isnull().values])]

旧答案:

IIUC 你可以这样做:

来源 DF:

In [40]: df
Out[40]:
column
0 NaN
1 1.0
2 NaN
3 452.0
4 1175.0
5 12.0
6 NaN
7 NaN
8 NaN
9 145.0
10 125.0
11 NaN
12 1259.0
13 2178.0
14 2514.0
15 1.0

解决方案:

In [31]: dfs = [x.dropna()
for x in np.split(df, df.index[df['column'].isnull()].values+1)]

In [32]: dfs[0]
Out[32]:
Empty DataFrame
Columns: [column]
Index: []

In [33]: dfs[1]
Out[33]:
column
1 1.0

In [34]: dfs[2]
Out[34]:
column
3 452.0
4 1175.0
5 12.0

In [35]: dfs[3]
Out[35]:
Empty DataFrame
Columns: [column]
Index: []

In [36]: dfs[4]
Out[36]:
Empty DataFrame
Columns: [column]
Index: []

In [37]: dfs[4]
Out[37]:
Empty DataFrame
Columns: [column]
Index: []

In [38]: dfs[5]
Out[38]:
column
9 145.0
10 125.0

In [39]: dfs[6]
Out[39]:
column
12 1259.0
13 2178.0
14 2514.0
15 1.0

关于python - 提取子DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43393164/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com