python столбцов на одну ячейку - PullRequest
0 голосов
/ 19 марта 2020

Как я могу объединить несколько столбцов в одну ячейку?

df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
df = df.append(df.agg(['mean', 'std']))

Я могу получить фрейм данных

             A         B
0     1.000000  2.000000
1     1.000000  3.000000
2     4.000000  6.000000
mean  2.000000  3.666667
std   1.732051  2.081666

, затем я хочу преобразовать части df в одну ячейку, которую я ожидаю:

          A     A_mean    A_std     B           B_mean    B_std   
0     1,1,4     2.0       1.732052  2,3,6     3.666667  2.081666   

1 Ответ

1 голос
/ 19 марта 2020

Не уверен насчет варианта использования для этого, но вы можете изменить форму и конкатать, как показано ниже:

m = df.agg(['mean', 'std']).unstack().to_frame().T
m.columns = m.columns.map('{0[0]}_{0[1]}'.format)
out = df.astype(str).agg(','.join).to_frame().T.assign(**m).sort_index(axis=1)

print(out)

       A  A_mean     A_std      B    B_mean     B_std
0  1,1,4     2.0  1.732051  2,3,6  3.666667  2.081666
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...