Кадр данных Pandas – объединить значения ячеекPython

Программы на Python
Ответить
Anonymous
 Кадр данных Pandas – объединить значения ячеек

Сообщение Anonymous »

У меня есть фрейм данных:

Код: Выделить всё

Email                | Col1      | Col2 | Col3      | Name
--------------------------------------------------------------------
john.cena@gmail.com  | CellStr11 | 1.4  | CellStr13 | John Cena
damian.doe@gmail.com | CellStr11 | 1.2  | CellStr13 | Matt Smith
john.smith@gmail.com | CellStr21 | 1.2  | CellStr23 | John Cena
Мне нужно агрегировать значения ячеек Col1, Col2 и Col3 по имени.
Если строка[Имя] == строка[Имя] затем:

Код: Выделить всё

Email                | Col1                  | Col2      | Col3                  | Name
------------------------------------------------------------------------------------------
john.cena@gmail.com  | CellStr11 / CellStr21 | 1.4 / 1.2 | CellStr13 / CellStr23 | John Cena
damian.doe@gmail.com | CellStr11             | 1.2       | CellStr13             | Matt Smith
Мне не нужно беспокоиться о других столбцах, их данные могут быть потеряны. Сначала я подумал об этом подходе:
  • Разделите фрейм данных таким образом, чтобы получить другую строку соответствия имени (узнали, как это сделать здесь
    Добавить столбцы в конец исходного фрейма данных
Проблема заключалась в том, что не все строки имели соответствующую строку с соответствующим именем, что приведет к тому, что некоторые строки будут иметь дополнительные столбцы, а некоторые — нет. (поправьте меня, если я ошибаюсь, если с этим приложением все в порядке, это тоже будет хорошо, даже лучше).
Есть ли простой способ сделать это с помощью df.apply и лямбда-функция? Или какой-нибудь другой, более сложный способ:

Код: Выделить всё

g2[['B', 'C']].apply(lambda x: x / x.sum())
но вместо суммирования просто объединяйте строки, но как мне отличить x.B от x.C?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ell-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»