如何根据条件修改数据框

时间:2019-02-27 05:22:19

标签: python pandas numpy

我有一个包含以下数据的数据框

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的新手。谁能建议我一种执行此操作的方法。

0 个答案:

没有答案