我转换了一个我在 python 2.7.3 上写的大文件,然后现在我想升级到 python 3+(我有 3.5)。
>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
这是为元组创建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) 我编写了以下代码来创建维恩图来显示 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)
我想要的是这样的: