基于多个列的计算列

2024-10-03 17:26:02 发布

您现在位置: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')

Tags: columns数据方法lambdadataframepandasdfdata
1条回答
网友
1楼 · 发布于 2024-10-03 17:26:02

使用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]

相关问题 更多 >