如何将此数据框转换为按 numpy.nan
行拆分的数据框字典?
import pandas
import numpy
names = ['a', 'b', 'c']
df = pandas.DataFrame([1,2,3,numpy.nan, 4,5,6,numpy.nan, 7, 8,9])
>>> df
0
0 1.0
1 2.0
2 3.0
3 NaN
4 4.0
5 5.0
6 6.0
7 NaN
8 7.0
9 8.0
10 9.0
期望的输出:
df_dict = {'a': <df1>, 'b': <df2>, 'c': <df3>}
与
df1 =
0
0 1.0
1 2.0
2 3.0
df2 =
4 4.0
5 5.0
6 6.0
df3 =
8 7.0
9 8.0
10 9.0
最佳答案
将字典理解
与groupby
一起使用:
d = {names[i]: x.dropna() for i, x in df.groupby(df[0].isnull().cumsum())}
{'c': 0
0 7.0
1 8.0
2 9.0, 'b': 0
0 4.0
1 5.0
2 6.0, 'a': 0
0 1.0
1 2.0
2 3.0}
print (d['a'])
0
0 1.0
1 2.0
2 3.0
print (d['b'])
0
4 4.0
5 5.0
6 6.0
print (d['c'])
0
8 7.0
9 8.0
10 9.0
关于python - 我怎样才能用空格分割这个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46053985/