python - Pandas:计算特定值的差距

标签 python pandas

我想计算数据框中未列出值的次数。

1 A
2 A
3 B
4 A
5 C
6 B
7 C
8 A
9 B

对于 A 这意味着:

1-2:0次

2-4:1次

4-8:3次

对于 B 这意味着:

3-6:2次

6-9:2次

对于 C 这意味着:

5-7:1次

有没有一种聪明的方法可以用 pandas 来做到这一点? 索引实际上是时间戳,但我认为这对问题并不重要。

最佳答案

假设您标记文本并将其复制到剪贴板中:

import pandas as pd
df = pd.read_clipboard(header=None)

最终得到一个包含第 0 列和第 1 列的数据框。第 0 列包含数字,第 1 列包含字母。

正在运行

for letter in df[1].unique():
    result = [f'{start}-{end}: {end - start -1} times' 
              for start, end in zip(
                  list(df[df[1] == letter][0]),
                  list(df[df[1] == letter][0])[1:]
                  )
             ]

    print(letter, result)   

打印

A ['1-2: 0 times', '2-4: 1 times', '4-8: 3 times']
B ['3-6: 2 times', '6-9: 2 times']
C ['5-7: 1 times']

关于python - Pandas:计算特定值的差距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54137876/

相关文章:

python - 无法理解 PyQt 中的一行代码

python - 数据框每列中的最小值,不包括零

python - 制作所有唯一单词的数据框及其计数和

python - 在 how= of resample 中插入新的不存在的列

python - 故意将变量渗入调用者范围的函数

python - 我的 sqlite 行之一包含我的列名称。如何选择删除

python - 静态文件不会在 Django (Pycharm) 中加载

python - 如何在 Python 3.6 中的 tarfile 对象上使用 csv.DictReader?

python - 使用 Pandas 根据另一列的数据将列数据插入到另一列

python - 值错误 : cannot copy sequence with size 821 to array axis with dimension 7