将矩阵市场矩阵转换为熊猫数据框架python
问题描述:
我有一个市场矩阵文件,我必须使用它来执行文本分析。将矩阵市场矩阵转换为熊猫数据框架python
市场文件具有以下结构:
%%MatrixMarket matrix coordinate integer general
2000 5000 23000
1 4300 1
1 2200 1
1 3000 1
1 600 1
在第二线的值表示的行数,列数,并在基质中的非零值的总数。之后的所有行包含3个值:
- 该行代表我的文本文档;
- 表示字的列(来自1的索引)
- 术语频率。
正如我在很多文章中看到的那样,我使用scipy.io.mmread和新的API来处理解析数据结构。
我特别用下面的代码:
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
感谢索引和列!有用。我从来没有处理过mtx文件! – Sil
@Sil既没有我 – piRSquared