Мой dataframe выглядит примерно так, только намного больше.pandas: сортировать каждый столбец индивидуально
d = {'Col_1' : pd.Series(['A', 'B']),
'Col_2' : pd.Series(['B', 'A', 'C']),
'Col_3' : pd.Series(['B', 'A']),
'Col_4' : pd.Series(['C', 'A', 'B', 'D']),
'Col_5' : pd.Series(['A', 'C']),}
df = pd.DataFrame(d)
Col_1 Col_2 Col_3 Col_4 Col_5
A B B C A
B A A A C
NaN C NaN B NaN
NaN NaN NaN D NaN
Во-первых, я стараюсь сортировать каждый столбец отдельно. Я пробовал играть с чем-то вроде: df.sort([lambda x: x in df.columns], axis=1, ascending=True, inplace=True)
, однако, только закончил с ошибками. Как отсортировать каждый столбец индивидуально в конечном итоге что-то вроде:
Col_1 Col_2 Col_3 Col_4 Col_5
A A A A A
B B B B C
NaN C NaN C NaN
NaN NaN NaN D NaN
Во-вторых, я ищу для конкатенации строк в столбцах
df = pd.concat([df,pd.DataFrame(df.sum(axis=0),columns=['Concatenation']).T])
я могу объединить все с выше после строки заменив np.nan на '', но результат будет разбит («AB») вместе и потребует дополнительного шага для очистки (во что-то вроде «A: B»).
Это немного странно. Каждый столбец представляет собой разговор. Иногда бывает два человека, иногда 3, иногда еще много. Порядок того, кто указан в разговоре, не имеет отношения к делу, так как A: B == B: A. Проблема может быть легко перенесена, но для конечного вывода должна быть горизонтальной. – DataSwede
Вместо того чтобы отбрасывать индекс, я думаю, вы можете/должны просто использовать '.values'. –