我有一个包含以下数据的数据框
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的新手。谁能建议我一种执行此操作的方法。