Python / Pandas:使用查找DataFrame +函数替换DataFrame中的特定/空值

假设我的Pandas DataFrame中的数据集不完整,例如:

incData  = pd.DataFrame({'comp': ['A']*3 + ['B']*5 + ['C']*4,
                         'x': [1,2,3] + [1,2,3,4,5] + [1,2,3,4],
                         'y': [3,None,7] + [1,4,7,None,None] + [4,None,2,1]})

还有一个带有可用于填充孔的合适参数的DataFrame:

fitTable = pd.DataFrame({'slope': [2,3,-1],
                         'intercept': [1,-2,5]},
                         index=['A','B','C'])

我想仅对None条目使用y = x * slope + intercept来实现以下目的:

   comp  x     y
0     A  1   3.0
1     A  2   5.0
2     A  3   7.0
3     B  1   1.0
4     B  2   4.0
5     B  3   7.0
6     B  4  10.0
7     B  5  13.0
8     C  1   4.0
9     C  2   3.0
10    C  3   2.0
11    C  4   1.0

我设想的一种方法是使用加入和放下:

incData = incData.join(fitTable,on='comp')
incData.loc[incData['y'].isnull(),'y'] = incData[incData['y'].isnull()]['x']*\
                                         incData[incData['y'].isnull()]['slope']+\
                                         incData[incData['y'].isnull()]['intercept']
incData.drop(['slope','intercept'], axis=1, inplace=True)

但是,这似乎不是很有效,因为它可以添加和删除列。看来我把事情弄得太复杂了,我是否忽略了一个简单而直接的解决方案?像这样的非功能性代码:

incData.loc[incData['y'].isnull(),'y'] = incData[incData['y'].isnull()]['x']*\
                                         fitTable[incData[incData['y'].isnull()]['comp']]['slope']+\
                                         fitTable[incData[incData['y'].isnull()]['comp']]['intercept']

我是Pandas的新手,所以有时我会与严格的索引编制规则混为一谈...