我有一个数据框data = {'A':['a','a',3,3,'c','c'],'B': [0, .5, 101, 105, 2000, 2500]}df = pd.DataFrame(data, columns = ['A','B'])和一本字典d = {'a':['a',3,'c'],'b':[5,200,3000],'c':[1,2,3]}我想用d['a']与比较df['A'],如果等于从增加值d['b'],以df['B']在新的一列df['C'],其结果将是data2 = {'A':['a','a','b','b','c','c'],'B': [0, .5, 101, 105, 2000, 2500],'C':[5,5.5,301,305,5000,5500]}df2 = pd.DataFrame(data2, columns = ['A','B','C'])
1 回答

蛊毒传说
TA贡献1895条经验 获得超3个赞
另一种方法是构造一个普通的地图:
import pandas as pd
data = {'A':['a','a',3,3,'c','c','d'],'B': [0, .5, 101, 105, 2000, 2500, 3000]}
df = pd.DataFrame(data, columns = ['A','B'])
m = dict(zip(d['a'],d['b']))
df['C'] = df['B'] + df['A'].map(m).fillna(0) # Fillna to avoid Not A Number (NaN
print(df)
返回值:
A B C
0 a 0.0 5.0
1 a 0.5 5.5
2 3 101.0 301.0
3 3 105.0 305.0
4 c 2000.0 5000.0
5 c 2500.0 5500.0
6 d 3000.0 3000.0
添加回答
举报
0/150
提交
取消