计算熊猫数据框中的新列

davo1979

尽管存在一些类似的问题,但我找不到以下简单的答案。请注意,我来自R,对Pandas来说还很陌生。

假设我有一个熊猫数据框df,其中包含两列:“度量”(具有3个级别的unicode)和“空气质量”(numpy.float64)。

我想基于“空气质量”中的值创建一个名为“颜色”的第三列。此外,我想针对“度量”的每个级别分别执行此操作。我已经成功通过使用df.loc在“ measure”上分割了df。然后,我使用以下代码分别在每个df中计算“颜色”:

#calculate the maximum value of "Airquality" in df for each "measure" level:
maxi = df['Airquality'].max()

#initialize the column for "color" in df for each "measure" level:
df['color'] = None

#find the maximum value of "Airquality" in df for each "measure" level:
maxi = df['Airquality'].max()

#loop through the rows calculating and assigning the value for color,
#again, in df for each "measure" level
for i in range(len(df['Airquality'])):
    df['color'][i] = int(100*df['Airquality'][i]/maxi)]

但是,这在我正在使用的大型数据集上运行非常缓慢,并且我确信必须有更好的方法...可能使用某些Pandas函数,并且可能无需将df分为三部分,每个“度量”级别。发布此文章是为了希望能从众多Python天才中学习之一。

帝斯曼

我认为您可以使用这些groupby工具,尤其是transform从框架开始(顺便说一句,习惯上自己展示一个示例数据框架):

In [21]: df = pd.DataFrame({"measure": ["a","a","b","a","c","c"],
    ...:                    "aq": [10,20,30,20,30,50]})

In [22]: df["colour"] = (100.0 * df["aq"] / 
                         df.groupby("measure")["aq"].transform(max))

In [23]: df
Out[23]: 
   aq measure  colour
0  10       a    50.0
1  20       a   100.0
2  30       b   100.0
3  20       a   100.0
4  30       c    60.0
5  50       c   100.0

之所以起作用,是因为我们通过对小节列进行分组,找到每个不同小节值的aq列​​的最大值,并将其广播到整个帧中来获得正确的分母,这就是这样做的:

In [24]: df.groupby("measure")["aq"].transform(max)
Out[24]: 
0    20
1    20
2    30
3    20
4    50
5    50
Name: aq, dtype: int64

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫数据框中的计算列

来自分类Dev

通过逐行计算来计算熊猫数据框中的新列

来自分类Dev

在熊猫数据框中创建新列

来自分类Dev

在熊猫数据框中添加新列

来自分类Dev

熊猫从数据框中的其他两个列变量计算新列

来自分类Dev

计算元素时如何在熊猫数据框中添加新列?

来自分类Dev

如何计算熊猫数据框中的新“规范化”列?

来自分类Dev

计算熊猫数据框中每月的新值数量

来自分类Dev

熊猫数据框中的新变量,用于计算连续值

来自分类Dev

熊猫计算数据框中列本身的数据

来自分类Dev

从熊猫数据框中的列创建新列

来自分类Python

熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值

来自分类Python

熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值

来自分类Dev

在熊猫数据框中,如何根据列值过滤行,进行计算并将结果分配给新列?

来自分类Dev

Python熊猫对数据框列进行分组,并使用它们来计算Excel工作表中的新列

来自分类Dev

相同的计算应用熊猫数据框中的列

来自分类Dev

分组后计算熊猫数据框中列的相邻差异

来自分类Dev

如何计算熊猫数据框中列值更改的频率

来自分类Dev

如何计算熊猫数据框列中的值的比率?

来自分类Dev

计算分组数据框的列中的项目对数。(熊猫)

来自分类Dev

如何计算熊猫数据框中列值更改的频率?

来自分类Dev

在熊猫数据框中合并多行并创建新列

来自分类Dev

如何在熊猫数据框中创建新列

来自分类Dev

如何根据条件在熊猫数据框中创建新列?

来自分类Dev

计算熊猫数据框中的路径数据

来自分类Dev

使用字典作为参考来从另一个数据框中计算熊猫数据框中的新列数

来自分类Dev

熊猫数据框列的条件计算

来自分类Dev

列之间的熊猫数据框计算

来自分类Dev

计算数据框中的元素并创建新的列

Related 相关文章

  1. 1

    熊猫数据框中的计算列

  2. 2

    通过逐行计算来计算熊猫数据框中的新列

  3. 3

    在熊猫数据框中创建新列

  4. 4

    在熊猫数据框中添加新列

  5. 5

    熊猫从数据框中的其他两个列变量计算新列

  6. 6

    计算元素时如何在熊猫数据框中添加新列?

  7. 7

    如何计算熊猫数据框中的新“规范化”列?

  8. 8

    计算熊猫数据框中每月的新值数量

  9. 9

    熊猫数据框中的新变量,用于计算连续值

  10. 10

    熊猫计算数据框中列本身的数据

  11. 11

    从熊猫数据框中的列创建新列

  12. 12

    熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值

  13. 13

    熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值

  14. 14

    在熊猫数据框中,如何根据列值过滤行,进行计算并将结果分配给新列?

  15. 15

    Python熊猫对数据框列进行分组,并使用它们来计算Excel工作表中的新列

  16. 16

    相同的计算应用熊猫数据框中的列

  17. 17

    分组后计算熊猫数据框中列的相邻差异

  18. 18

    如何计算熊猫数据框中列值更改的频率

  19. 19

    如何计算熊猫数据框列中的值的比率?

  20. 20

    计算分组数据框的列中的项目对数。(熊猫)

  21. 21

    如何计算熊猫数据框中列值更改的频率?

  22. 22

    在熊猫数据框中合并多行并创建新列

  23. 23

    如何在熊猫数据框中创建新列

  24. 24

    如何根据条件在熊猫数据框中创建新列?

  25. 25

    计算熊猫数据框中的路径数据

  26. 26

    使用字典作为参考来从另一个数据框中计算熊猫数据框中的新列数

  27. 27

    熊猫数据框列的条件计算

  28. 28

    列之间的熊猫数据框计算

  29. 29

    计算数据框中的元素并创建新的列

热门标签

归档