我试图根据其他列中的行值在熊猫数据框中创建一个新列。
我尝试使用apply方法,但是我不完全了解它的工作原理。
df = pd.DataFrame(data=['A', 'B', 'A'], columns=['Brand'])
Parameters = {'A': [0.3, 0.4], 'B': [0.1, 0.2]}
df['BrandMonthAdj1'] = df.apply(lambda x: Parameters[x['Brand']][0])
我希望这将为第一行和第三行返回一列0.3。第二行为0.1。 但是我收到以下我不理解的错误:
KeyError: ('Brand', u'occurred at index Brand')
答案 0 :(得分:3)
使用map
然后使用str
切片
df.Brand.map(Parameters).str[0]
Out[11]:
0 0.3
1 0.1
2 0.3
Name: Brand, dtype: float64
df['BrandMonthAdj1'] = df.Brand.map(Parameters).str[0]