Python 如何打开二进制矩阵并将其转换为2D数组或数据帧?
我在txt文件中有一个二进制矩阵,如下所示:Python 如何打开二进制矩阵并将其转换为2D数组或数据帧?,python,arrays,pandas,numpy,dataframe,Python,Arrays,Pandas,Numpy,Dataframe,我在txt文件中有一个二进制矩阵,如下所示: 0011011000 1011011000 0011011000 0011011010 1011011000 1011011000 0011011000 1011011000 0100100101 1011011000 我想把它做成一个2D数组或数据帧,其中每列有一个数字,行如图所示。我尝试使用numpy和pandas,但是输出只有一列包含整数。我希望能够以数字的形式调用整个列 我尝试过的代码之一是: with open("a1data1.txt"
0011011000
1011011000
0011011000
0011011010
1011011000
1011011000
0011011000
1011011000
0100100101
1011011000
我想把它做成一个2D数组或数据帧,其中每列有一个数字,行如图所示。我尝试使用numpy和pandas,但是输出只有一列包含整数。我希望能够以数字的形式调用整个列
我尝试过的代码之一是:
with open("a1data1.txt") as myfile:
dat1=myfile.read().split('\n')
dat1=pd.DataFrame(dat1)
与参数宽度一起使用
:
df = pd.read_fwf("a1data1.txt", header=None, widths=[1]*10)
print (df)
0 1 2 3 4 5 6 7 8 9
0 0 0 1 1 0 1 1 0 0 0
1 1 0 1 1 0 1 1 0 0 0
2 0 0 1 1 0 1 1 0 0 0
3 0 0 1 1 0 1 1 0 1 0
4 1 0 1 1 0 1 1 0 0 0
5 1 0 1 1 0 1 1 0 0 0
6 0 0 1 1 0 1 1 0 0 0
7 1 0 1 1 0 1 1 0 0 0
8 0 1 0 0 1 0 0 1 0 1
9 1 0 1 1 0 1 1 0 0 0
阅读txt后,可以使用以下代码修复它
pd.DataFrame(df[0].apply(list).values.tolist())
Out[846]:
0 1 2 3 4 5 6 7 8 9
0 0 0 1 1 0 1 1 0 0 0
1 1 0 1 1 0 1 1 0 0 0
2 0 0 1 1 0 1 1 0 0 0
3 0 0 1 1 0 1 1 0 1 0
4 1 0 1 1 0 1 1 0 0 0
5 1 0 1 1 0 1 1 0 0 0
6 0 0 1 1 0 1 1 0 0 0
7 1 0 1 1 0 1 1 0 0 0
8 0 1 0 0 1 0 0 1 0 1
9 1 0 1 1 0 1 1 0 0 0
@如果你愿意,这些答案,你可以投票并接受:-)嗯,那么read_fwf不起作用?或者有什么问题?read_fwf也可以,但它需要我知道宽度,在打开文件之前我不一定知道宽度。