在 Pandas 数据帧上使用转换函数,为数据帧的每一行返回新值

沙质卡斯基

我想对我拥有的数据帧的每一行应用一个函数。数据框的一个片段是这样的:

import pandas as pd
import numpy as np
import math


data = {'EVENT_ID': [112335580,112335580,112335580,112335580,112335580,112335580,112335580,112335580, 112335582,
                     112335582,112335582,112335582,112335582,112335582,112335582,112335582,112335582,112335582,
                     112335582,112335582,112335582],

 'SELECTION_ID': [6356576,2554439,2503211,6297034,4233251,2522967,5284417,7660920,8112876,7546023,8175276,8145908,
                  8175274,7300754,8065540,8175275,8106158,8086265,2291406,8065533,8125015],

 'BSP': [5.080818565,6.651493872,6.374683435,24.69510797,7.776082305,11.73219964,270.0383021,4,8.294425408,335.3223613,
         14.06040142,2.423340019,126.7205863,70.53780982,21.3328554,225.2711962,92.25113066,193.0151362,3.775394142,
         95.3786641,17.86333041],

  'WIN_LOSE':[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0]}

df = pd.DataFrame(data, columns=['EVENT_ID', 'SELECTION_ID', 'BSP','WIN_LOSE'])

df = df.sort_values(["EVENT_ID","BSP"])
df.set_index(['EVENT_ID', 'SELECTION_ID'], inplace=True)

df['Win_Percentage'] = 1/df['BSP']

df['Lose_Percentage'] = 1 - df['Win_Percentage']

我想对列应用以下函数Lose_Percentage

def test(df):

    x_list = df.values

    y_list = []

    for x in x_list:
        y = math.sin(x/1000)*2000

    return y

为此,我使用如下变换函数:

df['Fit'] = df.groupby(level=0)['Lose_Percentage'].transform(test)

问题是它为df['Fit']列的每一行返回相同的值我希望它返回从列上该行获取的值df['Lose_Percentage']并将其添加到新df['Fit']列中。

如果这样做正确,该df['Fit']列将包含 index 的值112335580

 [1.499999859375004, 1.6063624685814168, 1.6862587304992693, 1.6993154622916136, 1.742800855666326, 1.8295287282081318, 1.9190120053704878, 1.992593313611782]

我试图像这样调整函数:

def test(df):

    x_list = df.values

    y_list = []

    for x in x_list:
        y = math.sin(x/1000)*2000

        y_list.append(y)

    for fit in y_list:

        return fit

但这与之前的尝试返回的结果相同。我也尝试更改返回命令的缩进,但这也不起作用。

乔什·弗里德兰德

信不信由你,你想要的就这么简单

df['Fit'] = np.sin(df['Lose_Percentage'] / 1000) * 2000

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将3列(x,y,结果)Python Pandas DataFrame转换为以x(唯一)为行,y(唯一)为列的结果值的数据帧

来自分类Dev

使用索引元组值作为数据帧的行和列名称将Pandas groupby.groups结果转换为数据帧

来自分类Dev

在Pandas Python的每一行中应用函数时发生数据转换错误

来自分类Dev

对两列进行排序,并使用pandas为数据帧中的排序值创建新列

来自分类Dev

在pyspark [non pandas]中为数据框的每一行调用一个函数

来自分类Dev

在Pandas中将一级混合标头数据帧转换为垂直数据帧

来自分类Dev

从pyspark转换在Pandas数据帧上实现Plotly

来自分类Dev

如何将PANDAS数据帧的一行添加到其余行?

来自分类Dev

Python Pandas合并两个数据帧,并将一个数据帧的一行映射到另一数据帧的所有行

来自分类Dev

Pandas:比较每两行并将结果输出到新的数据帧

来自分类Dev

为 Pandas 数据帧的一行中的特定列设置值

来自分类Dev

从 Pandas 数据帧转换为 LabeledPoint RDD

来自分类Dev

在复杂的 Pandas 数据帧上重新索引和插值

来自分类Dev

迭代 Pandas 数据帧中的行并应用 lambda 函数

来自分类Dev

使用一个数据帧匹配 Pandas 中另一个数据帧中 x 的值并返回 y

来自分类Dev

如何在python中对pandas数据帧的每一行进行计算?

来自分类Dev

制作新数据帧时 Pandas 中的数据帧倾斜

来自分类Dev

使用 Pandas 比较两个数据帧以返回一个新的数据帧 - Python

来自分类Dev

仅将数据帧中的新值附加到 Pandas 中的另一个数据帧

来自分类Dev

如何根据行的排序值对pandas数据帧的每一行进行排序并返回列索引

来自分类Dev

Pandas - 用来自另一个数据帧的值填充一个数据帧的每一行

来自分类Dev

Pandas 尝试将一行附加到数据帧,但不断覆盖现有行

来自分类Dev

在 Pandas 数据帧的每一行上应用函数

来自分类Dev

使用循环使用 Pandas 转换多个数据帧

来自分类Dev

Pandas_udf 问题:将函数应用于数据为 ArrayType 的每一行

来自分类Dev

如何在 Pandas 数据帧的一部分上使用 std 函数?

来自分类Dev

Pandas 数据框如何根据特定组和上一行值为列赋值

来自分类Dev

Python - Pandas - 导入 Excel 文件,遍历每一行,添加新值,并添加到数据帧

来自分类Dev

仅重复第一行和经纬度,并使用 Pandas 数据帧的长度时间

Related 相关文章

  1. 1

    将3列(x,y,结果)Python Pandas DataFrame转换为以x(唯一)为行,y(唯一)为列的结果值的数据帧

  2. 2

    使用索引元组值作为数据帧的行和列名称将Pandas groupby.groups结果转换为数据帧

  3. 3

    在Pandas Python的每一行中应用函数时发生数据转换错误

  4. 4

    对两列进行排序,并使用pandas为数据帧中的排序值创建新列

  5. 5

    在pyspark [non pandas]中为数据框的每一行调用一个函数

  6. 6

    在Pandas中将一级混合标头数据帧转换为垂直数据帧

  7. 7

    从pyspark转换在Pandas数据帧上实现Plotly

  8. 8

    如何将PANDAS数据帧的一行添加到其余行?

  9. 9

    Python Pandas合并两个数据帧,并将一个数据帧的一行映射到另一数据帧的所有行

  10. 10

    Pandas:比较每两行并将结果输出到新的数据帧

  11. 11

    为 Pandas 数据帧的一行中的特定列设置值

  12. 12

    从 Pandas 数据帧转换为 LabeledPoint RDD

  13. 13

    在复杂的 Pandas 数据帧上重新索引和插值

  14. 14

    迭代 Pandas 数据帧中的行并应用 lambda 函数

  15. 15

    使用一个数据帧匹配 Pandas 中另一个数据帧中 x 的值并返回 y

  16. 16

    如何在python中对pandas数据帧的每一行进行计算?

  17. 17

    制作新数据帧时 Pandas 中的数据帧倾斜

  18. 18

    使用 Pandas 比较两个数据帧以返回一个新的数据帧 - Python

  19. 19

    仅将数据帧中的新值附加到 Pandas 中的另一个数据帧

  20. 20

    如何根据行的排序值对pandas数据帧的每一行进行排序并返回列索引

  21. 21

    Pandas - 用来自另一个数据帧的值填充一个数据帧的每一行

  22. 22

    Pandas 尝试将一行附加到数据帧,但不断覆盖现有行

  23. 23

    在 Pandas 数据帧的每一行上应用函数

  24. 24

    使用循环使用 Pandas 转换多个数据帧

  25. 25

    Pandas_udf 问题:将函数应用于数据为 ArrayType 的每一行

  26. 26

    如何在 Pandas 数据帧的一部分上使用 std 函数?

  27. 27

    Pandas 数据框如何根据特定组和上一行值为列赋值

  28. 28

    Python - Pandas - 导入 Excel 文件,遍历每一行,添加新值,并添加到数据帧

  29. 29

    仅重复第一行和经纬度,并使用 Pandas 数据帧的长度时间

热门标签

归档