Python — Как объединить строки в одну строку в Pandas? (не группировать по)

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

Я работаю со странным фреймом данных, используя Pandas:

 print(df)

Active        Dead       Hold
Product1      n/a        n/a
n/a           Product2   n/a
n/a           n/a        Product3
 

Я хочу объединить три строки в 1 строку, и ожидаемый результат:

 Active        Dead       Hold
Product1      Product2   Product3
 

Я действительно не знаю, как это сделать, и ценю вашу помощь! Спасибо.

Ответ №1:

Вот одна немного более быстрая альтернатива:

 new = df.apply(lambda x: x.dropna().values)
 

Ответ №2:

Предполагая, что удаление NaN из каждого столбца df дает одинаковое количество строк для каждого столбца, вы можете перебирать каждый столбец df, удалять NaN и помещать их в новый фрейм данных.

 df_collapsed = pd.DataFrame()
for col in df.columns:
    df_collapsed[col] = df[col].dropna().values
 

Вывод:

 df_collapsed

     Active      Dead      Hold
0  Product1  Product2  Product3
 

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

1. Спасибо за вашу помощь!