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

安妮

我有一个这样的熊猫数据框:

    id  some_value
0   tag1    v1
1   tag1    v2
2   tag1    v1
3   tag2    v2
4   tag2    v2
5   tag2    v3

我想知道每个IDsome_value更改值的频率因此,tag1这将是两次(因为它先从v1变为v2然后再返回),因为tag2它将是一次。我已经解决了这样的问题:

import pandas as pd
df = pd.DataFrame({'id': ['tag1', 'tag1', 'tag1', 'tag2', 'tag2','tag2'], 'some_value': ['v1','v2','v1','v2','v2','v3']})
mask = df['id'] == df['id'].shift(-1)
df['changed'] = df['some_value'] != df['some_value'].shift(-1)
df[mask].groupby('id').sum()

该代码可以正常工作,因为它返回

    changed
id  
tag1    2.0
tag2    1.0

有没有更优雅的解决方案?

萨奇·纳格帕尔(Sachit Nagpal)

实现此目的的一种方法是:

def numChanges(x):
    return sum(x.iloc[:-1] != x.shift(-1).iloc[:-1])

df.groupby('id').agg({
    'some_value' : numChanges
})

请注意,如果id列未排序,结果将有所不同,因此,除非您打算这样做,否则您的解决方案可能会产生不正确的结果。

例如,在我的解决方案中,下面的数据集将产生tag2值为5,但根据您的结果为3。从技术上讲,正确答案是5,但是如果对id变量进行排序,则不会有任何区别。

pd.concat([df]*3)  #My solution outputs 5 changes for tag2 and yours will give 3 only

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

如何计算数据框列中重复值的频率?

来自分类Dev

如何计算熊猫列中变量的频率

来自分类Dev

熊猫计算另一个数据框列中列值的频率

来自分类Dev

如何计算Python熊猫数据框中选择值的频率

来自分类Python

计算熊猫数据框中单词的出现频率

来自分类Dev

每次列值更改时在熊猫数据框中绘制实线

来自分类Dev

在熊猫数据框中更改时间频率

来自分类Dev

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

来自分类Dev

如何将计算的列添加到熊猫中列的数据帧计数频率

来自分类Dev

如何基于熊猫数据框中的其他列值更新“余额”列

来自分类Dev

如何在熊猫数据框中找到列的ngram频率?

来自分类Dev

如何更改熊猫数据框中列的日期时间格式

来自分类Dev

如何跟踪熊猫数据框中已更改的列

来自分类Dev

多个熊猫数据框中列中值的频率

来自分类Dev

熊猫数据框中的计算列

来自分类Dev

计算熊猫数据框中的新列

来自分类Dev

比较数据框中的列并计算python中匹配的频率

来自分类Dev

如何计算数据框列中列表中单词的频率?

来自分类Python

如何基于熊猫中的依存值更新数据框?

来自分类Dev

如何根据熊猫数据框中的频率创建wordcloud

来自分类Dev

如何根据熊猫中的其他数据框值更新一个数据框列?

来自分类Dev

如何根据数据框中的其他列值更改列值?

来自分类Python

如何计算熊猫数据框中选定列(包括频率为0的值)中值的唯一组合?

来自分类Dev

如何计算熊猫数据框中的值

来自分类Dev

计算Spark数据框中列中值的频率

来自分类Dev

更改熊猫数据框列中的值

来自分类Dev

如何为熊猫数据框中的另一列中的特定值更新一行中的列值?

来自分类Dev

将数据框中的值更改为列

Related 相关文章

  1. 1

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

  2. 2

    如何计算数据框列中重复值的频率?

  3. 3

    如何计算熊猫列中变量的频率

  4. 4

    熊猫计算另一个数据框列中列值的频率

  5. 5

    如何计算Python熊猫数据框中选择值的频率

  6. 6

    计算熊猫数据框中单词的出现频率

  7. 7

    每次列值更改时在熊猫数据框中绘制实线

  8. 8

    在熊猫数据框中更改时间频率

  9. 9

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

  10. 10

    如何将计算的列添加到熊猫中列的数据帧计数频率

  11. 11

    如何基于熊猫数据框中的其他列值更新“余额”列

  12. 12

    如何在熊猫数据框中找到列的ngram频率?

  13. 13

    如何更改熊猫数据框中列的日期时间格式

  14. 14

    如何跟踪熊猫数据框中已更改的列

  15. 15

    多个熊猫数据框中列中值的频率

  16. 16

    熊猫数据框中的计算列

  17. 17

    计算熊猫数据框中的新列

  18. 18

    比较数据框中的列并计算python中匹配的频率

  19. 19

    如何计算数据框列中列表中单词的频率?

  20. 20

    如何基于熊猫中的依存值更新数据框?

  21. 21

    如何根据熊猫数据框中的频率创建wordcloud

  22. 22

    如何根据熊猫中的其他数据框值更新一个数据框列?

  23. 23

    如何根据数据框中的其他列值更改列值?

  24. 24

    如何计算熊猫数据框中选定列(包括频率为0的值)中值的唯一组合?

  25. 25

    如何计算熊猫数据框中的值

  26. 26

    计算Spark数据框中列中值的频率

  27. 27

    更改熊猫数据框列中的值

  28. 28

    如何为熊猫数据框中的另一列中的特定值更新一行中的列值?

  29. 29

    将数据框中的值更改为列

热门标签

归档