Как изменить фрейм данных на основе условия - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть датафрейм, который содержит следующие данные

C_ID Desc Val 0 MN User_1 45000 1 MN User_3 40000 2 MN User_3 40000 3 BG User_1 30000 4 BG User_3 3200 5 BG User_3 2400

Я хотел бы получить вывод, как показано ниже

C_ID Desc Val MNVal BGVal 0 User_1 45000 30000 1 User_2 40000 3200 2 User_3 40000 2400

Ниже приведена моя попытка получить результат.

import pandas as pd
import numpy as np
df = pd.DataFrame({'C_ID':['MN','MN','MN','BG','BG','BG'],'Desc':['User_1','User_3','User_3','User_1','User_3','User_3'],'Val':[45000,40000,40000,30000,3200,2400]})

df['MNVal'] = np.where(df['C_ID'] == 'MN', df['Val'], 0)
df['BGVal'] = np.where(df['C_ID'] == 'BG', df['Val'], 0)

print(df)

Мой вывод, однако, выглядит так:

 `C_ID    Desc    Val  MNVal  BGVal
0   MN  User_1  45000  45000      0
1   MN  User_3  40000  40000      0
2   MN  User_3  40000  40000      0
3   BG  User_1  30000      0  30000
4   BG  User_3   3200      0   3200
5   BG  User_3   2400      0   2400` 

Я новичок в пандах и Numpy.Может ли кто-нибудь предложить мне, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...