.value_counts()给出截断的结果

时间:2016-07-25 11:00:38

标签: python pandas

我有一个包含多个单词列的excel文件。我试图计算每个单词的出现频率。 所以,如果我有一个清单

Labels 
a
a 
b
b
c
c
c

输出应为

c : 3
b : 2
a : 2

我正在使用以下代码段

import pandas as pd
train = pd.read_csv("ani2.csv")
A = train['Labels'].value_counts()
f = open("ani3.csv",'a')
f.write(str(A))
f.close()

数据集有大约53000个值,我获得的输出被截断。我获得的输出采用这种格式。

z : 1700
y : 1500
x : 1000
...
c : 3
b : 2
a : 2

由于某种原因,中间的值缺失,我获得的是三个点。

2 个答案:

答案 0 :(得分:5)

您正在通过str(A)

只需在to_csv上致电A

A = train['Labels'].value_counts()
A.to_csv("ani3.csv",mode='a')

当您执行str(A)时,您将输出(受pandas显示选项影响)转换为字符串表示形式,这就是您获得...的原因。

你可以在这里看到效果:

In [34]:
df = pd.DataFrame(np.random.randn(100,1), columns=['a'])
str(df['a'].value_counts())

Out[34]:
'-1.115774    1\n-0.196748    1\n-0.193616    1\n-0.197265    1\n 0.745611    1\n 0.766238    1\n-0.263205    1\n 0.542410    1\n-1.930702    1\n-0.913680    1\n 1.150879    1\n 0.213193    1\n-1.245947    1\n-2.610836    1\n 1.482863    1\n 0.430732    1\n-1.290851    1\n-0.962350    1\n-0.160461    1\n 1.895585    1\n 0.923683    1\n-1.206336    1\n 0.454317    1\n 0.293499    1\n-1.289761    1\n-0.191499    1\n 1.311149    1\n 0.380678    1\n 0.964312    1\n-0.703558    1\n            ..\n-0.384447    1\n 0.172968    1\n-0.221997    1\n 0.133441    1\n-0.343758    1\n-0.897193    1\n-0.525859    1\n-0.226437    1\n-0.552760    1\n-1.991686    1\n 0.517877    1\n 0.659020    1\n 1.680185    1\n 0.155123    1\n-0.788438    1\n-1.364535    1\n 0.034736    1\n 0.494853    1\n 1.113248    1\n-1.449296    1\n 1.123138    1\n-0.747243    1\n-0.429054    1\n-0.567881    1\n-0.476616    1\n-2.630239    1\n 0.084506    1\n 1.250732    1\n 0.071242    1\n-0.432580    1\nName: a, dtype: int64'

答案 1 :(得分:0)

你可以试试这个代码:

pd.set_option('display.max_rows', 500)
train['Labels'].value_counts()
相关问题