根据一个值添加新列

阿米尔

我不知道这是否是我的问题的正确标题。无论如何,这是我的简化df:

    change   gain
0      NaN    NaN
1    216.0  216.0
2    270.0  270.0
3    167.0  167.0
4    -80.0    0.0
5   -338.0    0.0
6   -155.0    0.0
7    253.0  253.0
8   -385.0    0.0
9    -30.0    0.0
10   198.0  198.0
11   318.0  318.0
12   266.0  266.0
13   142.0  142.0
14    85.0   85.0
15   199.0  199.0
16    53.0   53.0
17    91.0   91.0
18   187.0  187.0
19    64.0   64.0
20   118.0  118.0

我想添加另一列average_gain,该从第14行开始,并且该行的值等于:df['gain'].head(14).mean()140.769231。到目前为止,我想要的输出看起来像这样:

   change   gain  average_gain
0      NaN    NaN           NaN
1    216.0  216.0           NaN
2    270.0  270.0           NaN
3    167.0  167.0           NaN
4    -80.0    0.0           NaN
5   -338.0    0.0           NaN
6   -155.0    0.0           NaN
7    253.0  253.0           NaN
8   -385.0    0.0           NaN
9    -30.0    0.0           NaN
10   198.0  198.0           NaN
11   318.0  318.0           NaN
12   266.0  266.0           NaN
13   142.0  142.0           NaN
14    85.0   85.0    140.769231
15   199.0  199.0           NaN
16    53.0   53.0           NaN
17    91.0   91.0           NaN
18   187.0  187.0           NaN
19    64.0   64.0           NaN
20   118.0  118.0           NaN

然后,对于第14行以下的行,我想使用此代码,例如对于第15行:

df.loc[15, 'average_gain'] = (df.loc[14, 'average_gain']*13)+df.loc[15,'gain']其余各行的公式相同。因此,如果行号为n,则公式为:

df.loc[n, 'average_gain'] = (df.loc[n-1, 'average_gain']*13)+df.loc[n,'gain']

我尝试了以下两种方法,但是没有用:

def func(x):
    df['average_gain'].loc[n] = (df['average_gain'].loc[n - 1] * 13) + df['gain'].loc[n]
    return x

df['average_gain'].loc[15:] = (df['average_gain'].shift(1) * 13) + df['gain']
克德雷拉克

您可以使用:

df['average_gain'] = np.NaN
df['average_gain'][14] =  df['gain'].head(14).mean()
df

在此处输入图片说明

然后应用您的公式:

for i in range(15, len(df)):
    df.loc[i, 'average_gain'] = df.loc[i-1, 'average_gain'] * 13 + df.loc[i,'gain']
df

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

添加一个新列,该列根据现有字段值自动递增

来自分类Dev

根据 groupby 值向 Pandas 数据框添加一个新列

来自分类Dev

根据另一个数据框的行值在数据框中添加新列

来自分类Dev

根据条件从另一个数据框的值向数据框添加新列

来自分类Dev

熊猫:根据另一个数据框中的值在数据框中添加新列

来自分类Dev

如何创建一个列并根据单独的列值用新值填充它

来自分类Dev

根据另一个列的值,周期性地在新列中显示一个值

来自分类Dev

根据MYSQL表中一列的值创建一个新列

来自分类Dev

Pandas 根据另一列的非空值创建一个新列

来自分类Dev

根据现有列中的值创建一个新列

来自分类Dev

根据其他列R中的不同值创建一个新列R

来自分类Dev

根据多列中的值和相同条件在pandas中创建一个新列

来自分类Dev

Python groupby - 根据其他列中的值创建一个新列

来自分类Dev

根据数据表中的多列创建一个新的累积值列

来自分类Dev

根据另一个文件向文件添加新列

来自分类Dev

如何根据SQL Server中的条件从另一个表添加新列

来自分类Dev

根据另一列的值在一个列上添加多个CHECK约束

来自分类Dev

添加新列,每行作为另一列的上一个组值

来自分类Dev

在列中插入一个新值,并将此新值添加到其他列值中

来自分类Dev

根据另一列熊猫的值添加新列

来自分类Dev

根据R中的数值条件创建一个新的字符值列。

来自分类Dev

根据过滤后的值为数据表创建一个新列

来自分类Dev

根据比较结果比较无序DataFrame比较值并创建一个新列

来自分类Dev

根据其他列名称和值创建一个新列

来自分类Dev

根据在另一个表中的主键查找设置新的列值

来自分类Dev

Python Pandas:根据另一个数据框的类别值创建新列

来自分类Dev

向数据框添加新列会插入一个NaN值,而不是所需的值

来自分类Dev

Pyspark:使用udf根据另一个数据框中的值向数据框中添加新列

来自分类Dev

从RDD中的2个值添加一个新的计算列

Related 相关文章

  1. 1

    添加一个新列,该列根据现有字段值自动递增

  2. 2

    根据 groupby 值向 Pandas 数据框添加一个新列

  3. 3

    根据另一个数据框的行值在数据框中添加新列

  4. 4

    根据条件从另一个数据框的值向数据框添加新列

  5. 5

    熊猫:根据另一个数据框中的值在数据框中添加新列

  6. 6

    如何创建一个列并根据单独的列值用新值填充它

  7. 7

    根据另一个列的值,周期性地在新列中显示一个值

  8. 8

    根据MYSQL表中一列的值创建一个新列

  9. 9

    Pandas 根据另一列的非空值创建一个新列

  10. 10

    根据现有列中的值创建一个新列

  11. 11

    根据其他列R中的不同值创建一个新列R

  12. 12

    根据多列中的值和相同条件在pandas中创建一个新列

  13. 13

    Python groupby - 根据其他列中的值创建一个新列

  14. 14

    根据数据表中的多列创建一个新的累积值列

  15. 15

    根据另一个文件向文件添加新列

  16. 16

    如何根据SQL Server中的条件从另一个表添加新列

  17. 17

    根据另一列的值在一个列上添加多个CHECK约束

  18. 18

    添加新列,每行作为另一列的上一个组值

  19. 19

    在列中插入一个新值,并将此新值添加到其他列值中

  20. 20

    根据另一列熊猫的值添加新列

  21. 21

    根据R中的数值条件创建一个新的字符值列。

  22. 22

    根据过滤后的值为数据表创建一个新列

  23. 23

    根据比较结果比较无序DataFrame比较值并创建一个新列

  24. 24

    根据其他列名称和值创建一个新列

  25. 25

    根据在另一个表中的主键查找设置新的列值

  26. 26

    Python Pandas:根据另一个数据框的类别值创建新列

  27. 27

    向数据框添加新列会插入一个NaN值,而不是所需的值

  28. 28

    Pyspark:使用udf根据另一个数据框中的值向数据框中添加新列

  29. 29

    从RDD中的2个值添加一个新的计算列

热门标签

归档