即使存在缺失数据,如何重组 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
如果我有一个如下所示的 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