我需要重新排列数据帧同一行中的数据,其中某些列可能没有数据。原始数据框:
hash a1 a2 a3 a4 a5
0 1 2 nan nan nan
1 1 nan nan nan nan
2 1 2 3 nan nan
3 1 2 3 4 5
我期望拥有的数据框:
hash a1 a2 a3 a4 a5
0 nan nan nan 1 2
1 nan nan nan nan 1
2 nan nan 1 2 3
3 1 2 3 4 5
最佳答案
a = justify(df.loc[:,'a1':].values, invalid_val=np.nan, side='right')
print(a)
array([[nan, nan, nan, 1., 2.],
[nan, nan, nan, nan, 1.],
[nan, nan, 1., 2., 3.],
[ 1., 2., 3., 4., 5.]])
<小时/>
pd.DataFrame(a, columns = df.loc[:,'a1':].columns).assign(hash=df.hash)
a1 a2 a3 a4 a5 hash
0 NaN NaN NaN 1.0 2.0 0
1 NaN NaN NaN NaN 1.0 1
2 NaN NaN 1.0 2.0 3.0 2
3 1.0 2.0 3.0 4.0 5.0 3
关于python - 如何重新排列 pandas 数据框的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55765796/