我有一个DataFrame
,我希望使用Series
显示某个pd.Series.value_counts()
中某些值的频率。
问题是我只在输出中看到截断的结果。我在Jupyter Notebook编写代码。
我尝试了几种方法失败:
df = pd.DataFrame(...) # assume df is a DataFrame with many columns and rows
# 1st method
df.col1.value_counts()
# 2nd method
print(df.col1.value_counts())
# 3rd method
vals = df.col1.value_counts()
vals # neither print(vals) doesn't work
# All output something like this
value1 100000
value2 10000
...
value1000 1
目前这是我正在使用的,但它非常麻烦:
print(df.col1.value_counts()[:50])
print(df.col1.value_counts()[50:100])
print(df.col1.value_counts()[100:150])
# etc.
此外,我已阅读this相关的Stack Overflow问题,但未发现它有用。
那么如何停止输出截断的结果?
答案 0 :(得分:4)
如果要打印所有行:
pd.options.display.max_rows = 1000
print(vals)
如果您只打印一次所有行:
with pd.option_context("display.max_rows", 1000):
print(vals)
相关文档here。
答案 1 :(得分:2)
我认为你需要option_context
并设置一些大数字,例如999. solution的提升是:
option_context上下文管理器已通过顶级API公开,允许您使用给定的选项值执行代码。退出with块时,会自动恢复选项值。
#temporaly display 999 rows
with pd.option_context('display.max_rows', 999):
print (df.col1.value_counts())