Добавление новых элементов в столбец в панде. - PullRequest
0 голосов
/ 28 октября 2018

У меня есть pandas dataframe, как это:

df1:                              
    id  name   gender
    1   Alice  Male 
    2   Jenny  Female
    3   Bob    Male

И теперь я хочу добавить новый столбец sport, который будет содержать значения в виде списка. Давайте я хочу добавить Football в строки, гдепол мужской Так что df1 будет выглядеть следующим образом:

df1:                              
        id  name   gender  sport
        1   Alice  Male    [Football]
        2   Jenny  Female   NA
        3   Bob    Male    [Football]

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

df1:                              
            id  name   gender  sport
            1   Alice  Male    [Football,Tennis]
            2   Jenny  Female  [Badminton]
            3   Bob    Male    [Football,Tennis]

Как написать в Python общую функцию, которая будет выполнять эту задачу добавления новых значений в столбец на основе некоторого другого значения столбца?

1 Ответ

0 голосов
/ 28 октября 2018

ниже должно работать для вас.Инициализируйте столбец с пустым списком и продолжайте

df['sport'] = np.empty((len(df), 0)).tolist()

def append_sport(df, filter_df, sport):
    df.loc[filter_df, 'sport'] = df.loc[filter_df, 'sport'].apply(lambda x: x.append(sport) or x)
    return df

filter_df = (df.gender == 'Male')
df = append_sport(df, filter_df, 'Football')
df = append_sport(df, filter_df, 'Cricket')

Вывод

    id  name    gender  sport
0   1   Alice   Male    [Football, Cricket]
1   2   Jenny   Female  []
2   3   Bob     Male    [Football, Cricket]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...