Yen*_*Yen 12 python dataframe pandas
我有一个pandas数据帧如下:
a b c
0 1.0 NaN NaN
1 NaN 7.0 5.0
2 3.0 8.0 3.0
3 4.0 9.0 2.0
4 5.0 0.0 NaN
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以根据非空值将数据帧拆分成多个数据帧?
a
0 1.0
b c
1 7.0 5.0
a b c
2 3.0 8.0 3.0
3 4.0 9.0 2.0
a b
4 5.0 0.0
Run Code Online (Sandbox Code Playgroud)
WeN*_*Ben 15
使用groupby与dropna
for _, x in df.groupby(df.isnull().dot(df.columns)):
print(x.dropna(1))
a b c
2 3.0 8.0 3.0
3 4.0 9.0 2.0
b c
1 7.0 5.0
a
0 1.0
a b
4 5.0 0.0
Run Code Online (Sandbox Code Playgroud)
我们可以将它们保存在dict中
d = {y : x.dropna(1) for y, x in df.groupby(df.isnull().dot(df.columns))}
Run Code Online (Sandbox Code Playgroud)
更多信息使用dot获取空列,如果它们相同,我们应该将它们组合在一起
df.isnull().dot(df.columns)
Out[1250]:
0 bc
1 a
2
3
4 c
dtype: object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |