创建一个计算列,并将其附加到数据框

时间:2019-04-28 08:58:31

标签: python pandas append apply pandas-groupby

我的数据集(称为“火车”)与抵押申请有关。为了改善对“已接受”(0/1)的预测,我试图计算“贷款方接受比率”,并希望将该新列追加到我的数据集中。

数据集有50万行,出借方ID在0到6508之间变化,但实际上并不是所有的ID(整数)都存在。

我尝试过:

方法1: 创建数据透视表。这有效:

train.pivot_table(index=['lender'], aggfunc='mean', values=['accepted'])

但是:我似乎无法将此数据透视表的结果添加到我的数据集中:

  • 不是直接在一行代码中。

  • 不是间接的,方法是将此数据透视表的结果添加到一个空的数据框中,然后与“ on = lender_id”合并。

方法2: 使用groupby函数创建一个新列。我用了这个:

train['lender_ar'] = train.groupby('lender').transform('mean')

,但正在获取:

ValueError: Wrong number of items passed 21, placement implies 1

我的一些数据集:


lender  accepted
4536       1
2458       0
5710       1
5888       1
289        1

我希望有人能提供帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

我会尝试使用df.join作为原始数据集,并且平均值将不会具有相同的维度。

train.join(train.groupby('lender').mean(), on='lender')