- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
例如:
df1 = pd.DataFrame(np.repeat(np.arange(1,7),3), columns=['A'])
df1.A.value_counts(sort=False)
1 3
2 3
3 3
4 3
5 3
6 3
Name: A, dtype: int64
df2 = pd.DataFrame(np.repeat(np.arange(1,7),100), columns=['A'])
df2.A.value_counts(sort=False)
1 100
2 100
3 100
4 100
5 100
6 100
Name: A, dtype: int64
在上面的示例中,value_counts
完美运行并给出了所需的结果。而当涉及到更大的数据帧时,它会给出不同的输出。这里的 A
值已经排序并且计数也相同,但是 A
的索引顺序在 value_counts
之后发生了变化。为什么它对小计数正确但对大计数却不正确:
df3 = pd.DataFrame(np.repeat(np.arange(1,7),1000), columns=['A'])
df3.A.value_counts(sort=False)
4 1000
1 1000
5 1000
2 1000
6 1000
3 1000
Name: A, dtype: int64
在这里,我可以执行 df3.A.value_counts(sort=False).sort_index()
或 df3.A.value_counts(sort=False).reindex(df.A.unique ())
。我想知道为什么它对不同的计数表现不同?
使用:
Numpy version :1.15.2
Pandas version :0.23.4
最佳答案
这实际上是一个已知问题。
如果您浏览源代码 -
C:\ProgramData\Anaconda3\Lib\site-packages\pandas\core\algorithims.py
581
行是原始实现bins=None
int64
值调用
_value_counts_arraylike
keys, counts = htable.value_count_int64(values, dropna)
如果您随后查看 htable
实现,您会得出结论,键的顺序是任意的,取决于 hashtable
的工作方式。
它不保证任何类型的订购。通常,此例程按最大值排序,这几乎总是您想要的。
我想他们可以将其更改为 sort=False
表示原始排序。我不知道这是否真的会破坏任何东西(并且在内部完成这不是很昂贵,因为独特之处已经为人所知)。
顺序从 pandas/hashtable.pyx.build_count_table_object()
开始改变 . pymap
的大小调整通过散列值移动条目。
这是 full讨论
关于python - Pandas Series value_counts 对不同计数的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53294222/
比如我得到的dataframe如下: PassengerId Survived Pclass 0 1 0 3 1 2
我有一个数据框,我想查找每个值出现的次数。当我使用这个命令时 test = df['name'].value_counts() 我得到了正确的结果,但是当我尝试这个 df['occ'] = df['n
我有一个 excel 文件,其中有一列包含多个单词。我正在尝试计算每个单词的出现频率。所以如果我有一个列表 Labels a a b b c c c 输出应该是 c : 3 b : 2 a : 2 我
这个问题在这里已经有了答案: How to count the same values in a dict? [duplicate] (1 个回答) 关闭 3 年前。 我很熟悉如何返回value_c
我正在尝试使用 pandas(v0.23.4 ).当所有类别都存在时,这工作正常: import calendar import random import pandas as pd random.s
我有以下列connect_start 0 2019-01-01 00:01:44 1 2019-01-01 00:02:57 2 2019-01-01 00:24:09 3 2019-
我需要计算大量独立列中的值的计数(例如由 value_counts 表示),这些独立列由一组固定的 2-5 个其他列分组。此练习是对多达数百万行和多达 50-100 列的数据进行数据挖掘的一部分。因此
我正在尝试计算 pandas df 的嵌套列的唯一值,这是 manuel 注释的结果。假设我们有以下 df: df_test = pd.DataFrame(data=dict(x=["A","B","
在pandas里面常用value_counts确认数据出现的频率。 1. Series 情况下: pandas 的 value_counts() 函数可以对Series里面的每个值进行计数并且排
我得到了以下数据框: ae264e3637204a6fb9bb56bc8210ddfd ... 2906b810c7d4411798c6938adc9daaa5 1
我有一个由 df.column.value_counts().sort_index() 生成的 Pandas 系列。 | N Months | Count | |------|------| |
我有以下数据框: import pandas as pd import numpy as np df_Station_Weather = pd.DataFrame(
我创建了一个由两列组成的数据框。我想计算这两列出现的次数。 数据框看起来像 - No Name 1 A 1 A 5 T 9 V Nan M 5 T 1 A 我想使用 valu
我有一个数据框,其中一列是带有以下标签的分类变量:['Short', 'Medium', 'Long', 'Very Long', 'Extremely Long'] .我正在尝试创建一个新的数据框,
这是我的数据框: email title id --------------------------------- balh@blah.com Title a
这是我的数据框: email title id --------------------------------- balh@blah.com Title a
目标 我正在尝试从 value_counts() 开始,为数据框中的每一列自动生成 EDA 报告。 问题 问题是我的函数没有返回任何内容。因此,虽然它确实打印到控制台,但它不会将相同的输出打印到我的文
我进行了一项调查,答案可以是 1-7,例如“绝对不快乐”到“绝对快乐”以及介于两者之间的一切,数据是一个 pandas 系列。对它进行 data.value_counts() 会产生有序表 5.0
我有一个在一组服务器上提出的票证的 pandas 数据框架,如下所示: a b c Users Problem 0 data data data U
自从我开始在 pandas 中使用categorical类型以来,我有一段无法工作的特定代码:(为了方便起见,我将其形成为测试): import pandas as pd import numpy a
我是一名优秀的程序员,十分优秀!