即使存在缺失数据,如何重组 pandas 数据框

How to restructure a pandas dataframe even in the presence of missing data

如果我有一个如下所示的 pandas DataFrame:

    df=pandas.DataFrame(range(8))



   0
0  0
1  1
2  2
3  3
4  4
5  5
6  6
7  7

无论我只有 8 个数字,将此框架重组为两列五行的最佳方法是什么?

所以输出将是:

   0  1
0  0  5
1  1  6 
2  2  7
3  3  NaN
4  4  NaN
5  5  NaN

试试这个:

pd.DataFrame([df[0].values[:6], df[0].values[6:]]).T

     0    1
0  0.0  5.0
1  1.0  6.0
2  2.0  7.0
3  3.0  NaN
4  4.0  NaN

如果你真的想重复 5 两次:

pd.DataFrame([df[0].values[:6], df[0].values[5:]]).T


     0    1
0  0.0  5.0
1  1.0  6.0
2  2.0  7.0
3  3.0  NaN
4  4.0  NaN
5  5.0  NaN

只是让您知道有一个 numpy 函数可以调整数组的大小。它不会用 Na's tho 填充它们,它可能会重复您的值,或者可能会在缺失的位置添加 0。

加0:

import numpy as np
df=pandas.DataFrame(range(8))
arr = df.values.copy()
arr.resize(2, 5)
pd.DataFrame(arr.T)
Out[53]: 
   0  1
0  0  5
1  1  6
2  2  7
3  3  0
4  4  0

缺失点的重复值:

import numpy as np
df=pandas.DataFrame(range(8))
pd.DataFrame(np.resize(df.values, (2, 5)).T)
Out[61]: 
   0  1
0  0  5
1  1  6
2  2  7
3  3  0
4  4  1