基于多列的计算列

时间:2019-07-08 20:54:47

标签: python pandas

我试图根据其他列中的行值在熊猫数据框中创建一个新列。

我尝试使用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')

1 个答案:

答案 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]