熊猫:将数据框的上三角转换为下三角,反之亦然

时间:2019-03-26 15:59:53

标签: python pandas

我正在添加一个新函数,该函数将DataFrame转换为下三角(如果其为上三角,反之亦然)。我正在使用的数据总是前两行只填充第一个索引。

我尝试使用此问题Pandas: convert upper triangular dataframe by shifting rows to the left

的解决方案
 Data : 
      0         1         2      3  
0  1.000000  NaN       NaN      NaN
1  0.421655  NaN       NaN      NaN 
2  0.747064  5.000000  NaN      NaN
3  0.357616  0.631622  8.000000 NaN

应变成:

 Data : 
      0         1         2         3        
0  NaN       8.000000  0.631622  0.357616
1  NaN       NaN       5.000000  0.747064
2  NaN       NaN       NaN       0.421655
3  NaN       NaN       NaN       1.000000

2 个答案:

答案 0 :(得分:3)

就像您需要对行和列进行逆序

yourdf=df.iloc[::-1,::-1]
yourdf
Out[94]: 
    3    2         1         0
3 NaN  8.0  0.631622  0.357616
2 NaN  NaN  5.000000  0.747064
1 NaN  NaN       NaN  0.421655
0 NaN  NaN       NaN  1.000000

答案 1 :(得分:0)

您的系统应已安装numpy。因此,使用numpy.flip是另一种方式,并提供更具可读性的选项

In [722]: df
Out[722]:
          0         1    2   3
0  1.000000       NaN  NaN NaN
1  0.421655       NaN  NaN NaN
2  0.747064  5.000000  NaN NaN
3  0.357616  0.631622  8.0 NaN    

In [724]: import numpy as np
In [725]: df_flip = pd.DataFrame(np.flip(df.values))

In [726]: df_flip
Out[726]:
    0    1         2         3
0 NaN  8.0  0.631622  0.357616
1 NaN  NaN  5.000000  0.747064
2 NaN  NaN       NaN  0.421655
3 NaN  NaN       NaN  1.000000