如果存在丢失的数据,如何重组pandas数据帧

时间:2016-11-24 14:06:05

标签: python pandas dataframe pivot

如果我有一个像这样的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

2 个答案:

答案 0 :(得分:2)

只是你知道有一个numpy函数来调整数组的大小。它没有用Na的填充它们,它可以重复你的值,或者它可以在缺失点添加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

答案 1 :(得分:1)

试试这个:

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
相关问题