小编tkt*_*711的帖子

Python3:如何读取txt.bz2文件

有由 bz2 文件压缩的​​文本图块。文本文件中的数据如下所示。

   1  x3, x32, f5

   0  f4, g6, h7, j9

   .............
Run Code Online (Sandbox Code Playgroud)

我知道如何通过以下代码加载文本文件

 rf = open('small.txt', 'r')
    lines = rf.readlines()
    lst_text = []
    lst_label = []
    for line in lines:
        line = line.rstrip('\n')
        label, text = line.split('\t')
        text_words = text.split(',')
        lst_text.append(text_words)
        lst_label.append(int(label))
Run Code Online (Sandbox Code Playgroud)

但是txt被压缩成small.txt.bz2文件后。我想用下面的数据读取bz2文件,但是有错误。

import bz2

bz_file = bz2.BZ2File("small.txt.bz2")
lines = bz_file.readlines()
for line in lines:
    line = line.rstrip('\n')
    label, text = line.split('\t')
    text_words = text.split(',')
    print(label)
Run Code Online (Sandbox Code Playgroud)

错误:

      line = line.rstrip('\n')
TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

你能给我提示如何处理它,代码是最好的。谢谢!

python-3.x bz2

2
推荐指数
1
解决办法
4349
查看次数

Python:如何使用dataframe.to_csv保持前导零

从txt文件读取数据后,有一个如下所示的数据帧(df1):

 name   l1     l2
  a    00000  00000 
  b    00010  00002
  c    00000  01218
Run Code Online (Sandbox Code Playgroud)

当我如下使用python代码时:

dataframe.to_csv('test.csv', index= False)
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下代码来阅读:

  df = pd.read_csv('test.csv')
Run Code Online (Sandbox Code Playgroud)

我发现数据框如下所示是df2

       name   l1      l2
        a      0       0
        b     10       2
        c      0      1218
Run Code Online (Sandbox Code Playgroud)

但是我想像df1一样在数据帧中保留前导零。

谢谢!

csv dataframe python-2.7 pandas

2
推荐指数
1
解决办法
3809
查看次数

python3:matplotlib用字典绘制四行

你好,有一本字典,m = {'A':[1.5,3.6,5.7,6,7,8],'B':[3.5,5,6,8,4,5],'C':[ 2.8,3.5,4.5,5.6,7.0,9.0]}.我想在一个图上用python matplotlib绘制三条线(如下图所示).x-aix是相同的:[1,2,3,4,5,6].三个y值是关键(A,B,C)的值.A,B,C是三行标签.如何绘制它.我已经尝试过以下代码,但这是错误的,你能告诉我该怎么做.

为我想要的样品

  for k, v in dict_s:
        plt(range(1, 4), v, '.-', label=k)
Run Code Online (Sandbox Code Playgroud)

python plot dictionary matplotlib python-3.x

1
推荐指数
1
解决办法
974
查看次数

尝试使用python 2.7执行python 3代码的SyntaxError

我在python 2.7环境中运行python 3代码,其他代码如下,有如下错误,请给我一些提示如何解决,谢谢!如果您想了解更多信息,请告诉我.

python代码:

#! /usr/bin/env python

from __future__ import print_function
import argparse
from collections import defaultdict
import numpy as np
import os
import sys
import utils


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('target')
    args = parser.parse_args()

    target = defaultdict(list)
    for i, line in enumerate(sys.stdin):
        filename, score, *rect = line.strip().split()
        name, _ = os.path.splitext(filename)
        score = float(score)
        rect = tuple(map(float, rect))
        target[name].append((score, rect))

        if (i + 1) % 1000 == 0:
            print(i + 1, file=sys.stderr)

    for name in target.keys(): …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

1
推荐指数
1
解决办法
124
查看次数

Pandas 数据框:使用 python 删除基于一列值的所有行

我有一个数据帧 df 如下,我想删除或删除名称为 tom 的行,我使用以下代码(python3):

df1[~df1['name'].str.contains('tom')]
Run Code Online (Sandbox Code Playgroud)

但有错误:

AttributeError: Cannot access attribute 'str' of 'SeriesGroupBy'   
     objects, try using the 'apply' method


name    age weight 
tom     10   40
lucy    15   50
john    20   60
tom     10   40
lucy    15   50
john    20   60
tom     10   40
kate    30   70
tick    40   75
bruce   50   75
Run Code Online (Sandbox Code Playgroud)

请帮我解决它,这只是示例数据,因为真正的数据框很大。如果你们有快速的解决方案,请告诉我。提前致谢!

dataframe pandas python-3.5

0
推荐指数
1
解决办法
8062
查看次数

如何使用python更快地计算大单词列表中单词的计数频率并成为字典

有一个很长的单词列表,列表的长度约为360000.我想得到每个单词的频率,并成为一个字典.

例如:

{'I': 50, 'good': 30,.......}
Run Code Online (Sandbox Code Playgroud)

由于单词列表很大,我发现计算它需要花费很多时间.你有更快的方法来完成这个吗?

到目前为止,我的代码如下:

  dict_pronoun = dict([(i, lst_all_tweet_noun.count(i)) for i in 
                        lst_all_tweet_noun])
  sorted(dict_pronoun)
Run Code Online (Sandbox Code Playgroud)

python performance dictionary list python-3.x

0
推荐指数
1
解决办法
127
查看次数