【发布时间】:2022-10-19 17:05:03
【问题描述】:
在小数据框 df 中,我想创建一个新变量“y”。
'y' 应该是 'x' + 变量 n 的剩余行的总和。所以对于第一行我只想使用 df.n.sum()。对于第二行,我想使用 df.n.iloc[1:].sum(),依此类推。
这可以矢量化吗?
import pandas as pd
df=pd.DataFrame({'n':[4,5,6,7,8,9],
'x':[1,2,3,4,5,6]})
df['y'] = df.x + df.n.sum() #?
我可以使用 for 循环来做到这一点并获得预期的输出。
Expected output:
output = [df.n.iloc[i:].sum() for i in range(len(df))]
print(output)
Output:
[39, 35, 30, 24, 17, 9]
【问题讨论】: