python中使用pandas的频率表

2024-04-24 13:28:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用熊猫lineSer.value_计数()创建频率表,但它不显示我的所有项目。我有100多个数据,我需要查看所有的数据

def freqTable():
    fileIn = open('data.txt','r')
    fileOut = open('dataOut.txt', 'w')
    lines = [line.strip() for line in fileIn if line.strip() and not line.startswith('com')
    lineSer = pd.Series(lines)
    freq = str(lineSer.value_counts())
    for line in freq:
        fileOut.write(line)

这是我正在使用的代码,我需要去掉结果中的“…”并查看所有数据点。我能做什么不同的?在

^{pr2}$

Tags: 数据intxtforvaluelineopen频率
3条回答

如果需要临时显示数据,请使用display.max_rows尝试^{}

#temporary print 999 rows
with pd.option_context('display.max_rows', 999):
    print freq 

更多信息请参见docs。在

我尝试通过使用函数^{}^{}修改解决方案,使用函数^{}处理字符串数据,^{}将输出写入file

^{pr2}$
#get data which starts with 'com'
print s.str.startswith('com')
0     False
1     False
2     False
3     False
4     False
5      True
6      True
7      True
8     False
9     False
10    False
Name: Madding., dtype: bool

#filter rows, which not starts width 'com'
s = s[~s.str.startswith('com')]
print s
0      Madding.
1      Madding.
2      Madding.
3     Crowning.
4     Crowning.
8          Thy.
9         Thou.
10         The.
Name: Madding., dtype: object

#count freq
freq = s.value_counts()
#temporary print 999 rows
with pd.option_context('display.max_rows', 999):
    print freq 
Madding.     3
Crowning.    2
Thou.        1
Thy.         1
The.         1
Name: Madding., dtype: int64

#write series to file by to_csv
freq.to_csv('dataOut.txt', sep=';')

如果你想把这个列表写到一个文件中,不要把它变成一个字符串然后把它写到一个文件中。Pandas有内置的函数,可以将内容写入文件。只要做lineSer.value_counts().to_csv('dataOut.txt')。如果要调整输出的格式,请阅读to_csv的文档,了解如何自定义它。(您也可以通过使用pandas.read_csv之类的方法更有效地读取数据,但这是另一个主题。)

试试这个:

pd.options.display.max_rows = 999

相关问题 更多 >