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