python - 将 NaN 作为 value_counts() 的第一个值

标签 python pandas dataframe

我有一个小数据集,我需要对其执行计数值操作。数据集看起来像这样:

A   B
1   67
1   56
1   23
2   22
2   12
3   78

columns = ["Count"]
g = pd.DataFrame(A.value_counts(), index=False, columns=columns)

所以我想做的是尝试计算 A 列中每个唯一值的实例数并创建一个新的 DataFrame,我尝试使用 A.value_counts(),但是当我尝试放入这个新列,我得到的第一个值为 NaN。可能是什么问题?这是我得到的:

A Count
1  NaN
2  3
3  2

我得到的第一个值为 NaN,之后显示正常输出。可能是什么原因?我希望输出是这样的:

A  Count
1   3
2   2
3   1

我应该如何避免得到这个 NaN 值?数据集中的索引从 0 开始。

最佳答案

你通常会这样做

In [2334]: df.A.value_counts().reset_index(name='Count').rename(columns={'index': 'A'})
Out[2334]:
   A  Count
0  1      3
1  2      2
2  3      1

或者,

In [2335]: df.groupby('A').size().reset_index(name='Count')
Out[2335]:
   A  Count
0  1      3
1  2      2
2  3      1

详细信息

In [2337]: df
Out[2337]:
   A   B
0  1  67
1  1  56
2  1  23
3  2  22
4  2  12
5  3  78

关于python - 将 NaN 作为 value_counts() 的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46059632/

相关文章:

python - 根据另一列中的值替换 DataFrame 列中的值

python-3.x - 如何将 Pandas 数据帧转换为字节字符串?

r - R 中按列索引子集 - Data.Table 与 dataframe

python - 如何获得两个 Pandas 数据帧的公共(public)索引?

python - 如何在 PostgreSQL 中利用 Python 代码转义字符串进行 SQL 注入(inject)

python - 在 Windows 10 上安装 Shapely

python - 将带有子图的 Pandas 图保存到一个文件中

python - 合并在列中迭代的两个数据帧

python - 如何计算 python 中字典中前 10 个最常见的值

python - Selenium Python - 处理没有这样的元素异常