Как распечатать фрейм данных в oneline, не включая None?

#python #pandas

#питон #панды

Вопрос:

У меня есть следующий фрейм данных

      0 1 2 3
   A b a p l
   C c p g None
   T g t x None
 

Прямо сейчас я печатаю его следующим образом

    for i in range(len(df.columns)): print((df[i]).to_string(index=False))
 

Вывод:

 b
c
g
a
p
t
p
g
x
  l
None
None
 

Есть ли способ напечатать его вот так?

  bcgaptpgxl
 

Комментарии:

1. Можете ли вы включить код для инициализации фрейма данных? Это поможет будущим читателям, если они смогут просто скопировать / вставить ваш код для запуска.

Ответ №1:

Предполагая, что None это на самом деле NaN :

 >>> ''.join(df.melt()['value'].dropna().tolist())
'bcgaptpgxl'
 

Комментарии:

1.Отличный ответ. Мог бы добавить ''.join([v for v in df.melt()["value"].tolist() if v is not None]) , если None есть None . (или if v != "None" ) если это буквально строка «None».

2. Или ''.join([str(v) for v in df.melt()["value"] if pd.notnull(v) and v != 'None'])