Value_counts 打印错误值 - 添加列名称作为索引

问题描述 投票:0回答:2

在进行 pandas

value_counts
练习时,回报从来都不是预期的和我需要得到的

我使用的代码是:

import pandas as pd
df = pd.DataFrame({'a':[1, 1, 2, 2, 2]})
value_counts = df['a'].value_counts(dropna=True, sort=True)
print(value_counts)

问题是代码应该打印:

2    3
1    2
Name: a, dtype: int64

而是打印:

a
2    3
1    2
Name: count, dtype: int64

有什么解释吗?如果有帮助的话我正在使用 Jupyter。谢谢

python pandas dataframe
2个回答
0
投票

您的代码似乎可以工作或提供您想要的输出。我已经在我的 jupyter 笔记本中测试了它。请检查可能导致它的代码的其他部分?或者重新启动你的jupyter环境


0
投票

这是预料之中的,

value_counts
在最近的pandas版本中已经将列名称设置为索引名称。

之前版本的输出有所不同:

# pandas 1.5.3
2    3
1    2
Name: a, dtype: int64

# pandas 2.1.4
a
2    3
1    2
Name: count, dtype: int64

要删除此名称,您可以在 rename

 之前 
value_counts
:

df['a'].rename().value_counts(dropna=True, sort=True)

rename_axis
之后:

df['a'].value_counts(dropna=True, sort=True).rename_axis(None)

输出:

2    3
1    2
Name: count, dtype: int64
© www.soinside.com 2019 - 2024. All rights reserved.