我有一个看起来像这样的数据框:

  Z1  Z2  Z3 Z4
   0   0   A  A
   0   B   0  0
   C   0   C  0
   D   0   D  0
   0   0   E  0


我想删除值为0的单元格,并使它看起来像这样:

  Z1  Z2  Z3 Z4
  C   B   A  A
  D       C
          D
          E

最佳答案

您只能通过to_string导出到没有索引的字符串:

print (df.apply(lambda x: pd.Series(x[x!='0'].values)).fillna(''))
  Z1 Z2 Z3 Z4
0  C  B  A  A
1  D     C
2        D
3        E

df = df.apply(lambda x: pd.Series(x[x!='0'].values)).fillna('').to_string(index=False)
print (df)
Z1 Z2 Z3 Z4
C  B  A  A
D     C
      D
      E

07-24 20:53