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