Python:转置数据帧,结果不完整



当我尝试转置数据帧时,我遇到了问题,该过程运行良好,但我不明白为什么在传输中不包括最后一列,这是我的原始数据帧:

 ASH700936D_M-SCIS      East     2.07  -0.30  -0.27   0.00   0.00   0.00   0.00   0.19
 ASH700936D_M-SCIS      North    1.93   0.00   0.00  -0.15   0.09   0.04  -0.27   0.12
 ASH700936D_M-SCIS      Up      31.59 -40.09  -1.48  15.31   1.03   0.00   0.00   0.65
 ASH701945E_M-SCIS      East     2.66   0.00   0.00   0.00   0.00   0.00   0.00   0.17
 ASH701945E_M-SCIS      North   -0.91   0.00   0.00  -0.21   0.08   0.13  -0.44   0.12
 ASH701945E_M-SCIS      Up       5.45   3.31   0.11   0.00   0.00  -0.18  -0.18   0.41
 LEIAR20-LEIM           East    -1.34   0.04   0.06   0.00   0.00   0.03  -0.05   0.05
 LEIAR20-LEIM           North   -0.39   0.04   0.07   0.00   0.00   0.01  -0.06   0.03
 LEIAR20-LEIM           Up       0.58   0.00   0.00   0.10   0.04   0.20   0.02   0.13
 LEIAR25.R3-LEIT        East    -0.39   0.00   0.00   0.02   0.28  -0.00  -0.31   0.08
 LEIAR25.R3-LEIT        North   -0.65   0.00   0.00   0.09  -0.11  -0.10   0.22   0.05
 LEIAR25.R3-LEIT        Up       2.02  -8.52  -1.15   2.62   0.63   0.00   0.00   0.27
 LEIAR25.R4-LEIT        East     0.79   0.00   0.00   0.02   0.22  -0.05  -0.16   0.12
 LEIAR25.R4-LEIT        North   -0.36   0.00   0.00   0.00   0.00   0.04   0.03   0.05
 LEIAR25.R4-LEIT        Up      15.11 -20.38   0.03   7.53   0.07   0.00   0.00   0.32

我的转置数据帧是:

0                   1                   2                   3                   4                   5                   6                   7                   8                   9                   10                  11                  12                  13                  
ASH700936D_M-SCIS   ASH700936D_M-SCIS   ASH700936D_M-SCIS   ASH701945E_M-SCIS   ASH701945E_M-SCIS   ASH701945E_M-SCIS   LEIAR20-LEIM        LEIAR20-LEIM        LEIAR20-LEIM        LEIAR25.R3-LEIT     LEIAR25.R3-LEIT     LEIAR25.R3-LEIT     LEIAR25.R4-LEIT     LEIAR25.R4-LEIT     
East                North               Up                  East                North               Up                  East                North               Up                  East                North               Up                  East                North               
2.07                1.93                31.59               2.66                -0.91               5.45                -1.34               -0.39               0.58                -0.39               -0.65               2.02                0.79                -0.36               
-0.30               0.0                 -40.09              0.0                 0.0                 3.31                0.04                0.04                0.0                 0.0                 0.0                 -8.52               0.0                 0.0                 
-0.27               0.0                 -1.48               0.0                 0.0                 0.11                0.06                0.07                0.0                 0.0                 0.0                 -1.15               0.0                 0.0                 
0.00                -0.15               15.31               0.0                 -0.21               0.0                 0.0                 0.0                 0.1                 0.02                0.09                2.62                0.02                0.0                 
0.00.1              0.09                1.03                0.0                 0.08                0.0                 0.0                 0.0                 0.04                0.28                -0.11               0.63                0.22                0.0                 
0.00.2              0.04                0.0                 0.0                 0.13                -0.18               0.03                0.01                0.2                 -0.0                -0.1                0.0                 -0.05               0.04                
0.00.3              -0.27               0.0                 0.0                 -0.44               -0.18               -0.05               -0.06               0.02                -0.31               0.22                0.0                 -0.16               0.03                
0.19                0.12                0.65                0.17                0.12                0.41                0.05                0.03                0.13                0.08                0.05                0.27                0.12                0.05                

如您所见,在转置文件的末尾,"LEIAR25。R4-LEIT"不见了。这是我的脚本:

df = pd.read_csv('original_dataframe.txt', sep='s*', index_col=None, engine='python')
df_transposed = df.transpose()
df_transposed.to_csv('transposta_bozza.txt', sep=' ')
with open ('transposta_bozza.txt','r') as f:
    with open ('transposta.txt', 'w') as r:
        for line in f:
            data=line.split()
            df='{0[0]:<20}{0[1]:<20}{0[2]:<20}{0[3]:<20}{0[4]:<20}{0[5]:<20}{0[6]:<20}{0[7]:<20}{0[8]:<20}{0[9]:<20}{0[10]:<20}{0[11]:<20}{0[12]:<20}{0[13]:<20}'.format(data)
            r.write("%sn" % df)
r.close()

我不得不说不,如果我尝试将 {0[14]:<20}.format(data( 说"索引错误:索引超出范围"我认为索引存在一些问题,但我不知道该怎么办!!

不必编写临时文件,请尝试以下代码:

with open ('transposta.txt', 'w') as fp:
    for i, row in df_transposed.iterrows(): 
        fp.write(''.join('{:<20}'.format(x) for x in row))
        fp.write('n')

我无法发现您的代码的问题,但希望这会有所帮助

最新更新