python - 如何重新排列 pandas 数据框的每一行

标签 python pandas

我需要重新排列数据帧同一行中的数据,其中某些列可能没有数据。原始数据框:

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

最佳答案

您可以使用justify来自this post :

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/

相关文章:

python - 在 Mac 上不使用 Python 的系统安装,使用 py2app 创建独立应用程序?

python - Pandas 的多列分解

python - 为什么 PYTHONPATH 被忽略?

python - 使用 Networkx 进行有向图遍历

python - 从 dtype =object 的列中查找唯一值

python - 基于日期时间索引和列的 Pandas 回填值

python - 迭代两个 pandas 数据帧并将数据从一个数据帧附加到另一个数据帧

python - 理解 "Think Python"中的 turtle 圆和弧

python - 如何在使用response.css提取时删除/n和逗号

python - 用 numpy 数组替换 pandas dataframe 变量值