Суммирование столбцов в датафрейме в python - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь добавить 3 значения столбцов, чтобы получить новый столбец в качестве общего значения. Код ниже:

    df3[["Bronze","Gold","Silver"]] = 
    df3[["Bronze","Gold","Silver"]].astype("int")
    df3["Total Medal"]= df3.iloc[:, -3:0].sum(axis=1)
    df3[["Total Medal"]].astype("int")

Я знаю, что столбцы Bronze, Gold, Silver имеют значения 1 и 0 и являются последними 3 столбцами в кадре данных. Их исходные типы были "uint8", поэтому я изменил их на "int".

Столбец Total Medal после этих строк выходит как тип "float" (вместо int) и выдает только значение 0. Как правильно добавить эти столбцы?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Это может, например, сделать с помощью assign:

import numpy as np
import pandas as pd

#create data frame
data = {"gold":np.random.choice([0,1],size=10),"silver":np.random.choice([0,1],size=10), "bronze":np.random.choice([0,1],size=10)}
df = pd.DataFrame(data)

#calculate new column and add to dataframe
df = df.assign(mysum=df.gold+df.silver+df.bronze)

Редактировать: df["mysum"] = df.sum(axis=1) работает только в том случае, если ваш фрейм данных имеет только три релевантных столбца, потому что он суммирует все столбцы (а не только желаемые три).

0 голосов
/ 30 августа 2018

Чтобы добавить значение 3 столбцов в новый столбец, просто сделайте

    df['Total Medal'] = df.sum(axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...