将矩阵市场矩阵转换为数据帧python
我有一个市场矩阵文件,我必须使用它进行文本分析 市场文件具有以下结构:将矩阵市场矩阵转换为数据帧python,python,pandas,dataframe,text-analysis,Python,Pandas,Dataframe,Text Analysis,我有一个市场矩阵文件,我必须使用它进行文本分析 市场文件具有以下结构: %%MatrixMarket matrix coordinate integer general 2000 5000 23000 1 4300 1 1 2200 1 1 3000 1 1 600 1 第二行中的值表示矩阵中的行数、列数和非零值总数。在此之后的所有行都包含3个值: 表示我的文本文档的行(从1索引) 表示一个单词的列(从1开始的索引) 术语频率 正如我在许多文章中读到的,我使用scipy.io.mmrea
%%MatrixMarket matrix coordinate integer general
2000 5000 23000
1 4300 1
1 2200 1
1 3000 1
1 600 1
第二行中的值表示矩阵中的行数、列数和非零值总数。在此之后的所有行都包含3个值:
- 表示我的文本文档的行(从1索引)李>
- 表示一个单词的列(从1开始的索引)李>
- 术语频率
Matrix = (mmread('file_name.mtx'))
B = Matrix.todense()
df = pd.DataFrame(B)
print(df.head())
但是,从这段代码中,我得到了一个从0索引的数据帧:
0 1 2 3 4 5 6 7 8 9 ... 4872 \
0 1 0 1 0 0 0 0 0 1 0 ... 0
1 0 0 0 0 0 0 0 0 0 0 ... 0
2 0 0 0 0 0 0 0 0 0 0 ... 0
3 1 0 1 0 0 0 0 0 1 0 ... 0
4 0 0 1 0 0 0 0 0 0 0 ... 0
理想的结果是保留原始市场矩阵的格式,行和列的索引从1开始
你知道如何更正我的代码吗
谢谢 您可以为数据帧指定索引和列
Matrix = (mmread('file_name.mtx'))
B = Matrix.todense()
df = pd.DataFrame(B, range(1, B.shape[0] + 1), range(1, B.shape[1] + 1))
print(df.iloc[:5, :5])
1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 0 0 0 0 0
可以为数据帧指定索引和列
Matrix = (mmread('file_name.mtx'))
B = Matrix.todense()
df = pd.DataFrame(B, range(1, B.shape[0] + 1), range(1, B.shape[1] + 1))
print(df.iloc[:5, :5])
1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 0 0 0 0 0
@Sil也没有I@Sil我也没有