Оптимизация транспонирования конкретных кадров - PullRequest
1 голос
/ 21 октября 2019

Я хотел бы переместить Pandas Dataframe из строки в столбцы, где число строк является динамическим. Затем транспонированный Dataframe должен также иметь динамическое число столбцов.

Мне удалось использовать методы iterrows () и concat (), но я хотел бы оптимизировать мой код.

Пожалуйста, найдите мой текущий код:

import pandas as pd
expected_results_transposed = pd.DataFrame()
for i, r in expected_results.iterrows():
    t = pd.Series([r.get('B')], name=r.get('A'))
    expected_results_transposed = pd.concat([expected_results_transposed, t], axis=1)
print("CURRENT CASE EXPECTED RESULTS TRANSPOSED:\n{0}\n".format(expected_results_transposed))

Найдите иллюстрацию ожидаемого результата: изображение ожидаемого результата

Есть ли у вас какое-либо решение для оптимизации моего кода с использованием "стандартных" методов Pandas dataframes/ options?

Спасибо за помощь:)

1 Ответ

0 голосов
/ 21 октября 2019

Использование DataFrame.transpose + DataFrame.set_index:

new_df=df.set_index('A').T.reset_index(drop=True)
new_df.columns.name=None

Пример

  df2=pd.DataFrame({'A':'Mike Ana Jon Jenny'.split(),'B':[1,2,3,4]})
print(df2)

       A  B
0   Mike  1
1    Ana  2
2    Jon  3
3  Jenny  4

new_df=df2.set_index('A').T.reset_index(drop=True)
new_df.columns.name=None
print(new_df)

   Mike  Ana  Jon  Jenny
0     1    2    3      4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...