Pandas - 尝试在数据框单元格中创建列表或系列

时间:2016-01-24 22:59:54

标签: numpy pandas

我有以下数据框

df = pd.DataFrame({'A':[74.75, 91.71, 145.66], 'B':[4, 3, 3], 'C':[25.34, 33.52, 54.70]})

        A  B     C
0   74.75  4  25.34
1   91.71  3  33.52
2  145.66  3  54.70

我想创建另一个列df ['D'],它可以是前3列中的列表或系列,适合在另一列中使用np.irr函数,如下所示

      D
0     [ -74.75, 2.34, 25.34, 25.34, 25.34]
1     [ -91.71, 33.52, 33.52, 33.52]
2     [-145.66, 54.70, 54.70, 54.70]

所以我最终可以做这样的事情

df['E'] = np.irr(df['D'])

我确实得到了这个

 [-df.A[0]]+[df.C[0]]*df.B[0]

但它并不存在。

1 个答案:

答案 0 :(得分:0)

您真的需要专栏'D'吗?

顺便说一下,您可以轻松地将其添加为:

df['D'] = [[-df.A[i]]+[df.C[i]]*df.B[i] for i in xrange(len(df))]
df['E'] = df['D'].map(np.irr)

如果您不需要,可以直接设置E

df['E'] = [np.irr([-df.A[i]]+[df.C[i]]*df.B[i]) for i in xrange(len(df))]

或:

df['E'] = df.apply(lambda x: np.irr([-x.A] + [x.C] * x.B), axis=1)