小编Reb*_*bin的帖子

python 2到3迁移错误“readinto”方法

我转换了一个我在 python 2.7.3 上写的大文件,然后现在我想升级到 python 3+(我有 3.5)。

  1. 到目前为止我做了什么:
    1. 安装了 python 解释器 3.5+
    2. 更新了环境路径以从 python3+ 文件夹中读取
    3. 升级了 numpy,pandas,
    4. 我曾经>python 2to3.py -w viterbi.py转换为版本 3+

我有错误的部分

import sys
import numpy as np
import pandas as pd

# Counting number of lines in the text file
lines = 0
buffer = bytearray(2048)
with open(inputFilePatheName) as f:
    while f.readinto(buffer) > 0:
        lines += buffer.count('\n')
Run Code Online (Sandbox Code Playgroud)

我的错误是:

AttributeError: '_io.TextIOWrapper' object has no attribute 'readinto'
Run Code Online (Sandbox Code Playgroud)

这是第一个错误,我无法继续查看是否还有其他错误。我不知道什么是等效命令readinto

python python-2to3

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

Python:用于元组的Pandas DataFrame

这是为元组创建DataFrame的正确方法吗?(假设元组是在代码片段内创建的)

import pandas as pd
import numpy as np
import random

row = ['a','b','c']
col = ['A','B','C','D']

# use numpy for creating a ZEROS matrix
st = np.zeros((len(row),len(col))) 
df2 = pd.DataFrame(st, index=row, columns=col)

# CONVERT each cell to an OBJECT for inserting tuples
for c in col:
    df2[c] = df2[c].astype(object)

print df2

for i in row:
    for j in col:
        df2.set_value(i, j, (i+j, np.round(random.uniform(0, 1), 4)))

print df2
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我首先创建了一个zeros(3,4)numpy,然后在Pandas中使每个单元格成为OBJECT类型,这样我就可以插入元组了.这是正确的做法,还是有更好的ADD/RETRIVE元组到矩阵的解决方案?

结果很好:

   A  B  C  D
a  0  0  0 …
Run Code Online (Sandbox Code Playgroud)

python tuples numpy pandas

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

Python维恩图实际标签

我编写了以下代码来创建维恩图来显示 3 个集合的交集。我绘制的只是共同元素的数量。我想要的是打印真正的 A,B,C,... 在交叉点内不计算它们。有办法吗?

我的代码和输出:

set1 = set(['A', 'B', 'C', 'D'])
set2 = set(['B', 'C', 'D', 'E'])
set3 = set(['C', 'D',' E', 'F', 'G'])
v=venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3'))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想要的是这样的:

在此输入图像描述

python matplotlib matplotlib-venn

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