Python 从csv读取数据帧后索引错误

Python 从csv读取数据帧后索引错误,python,pandas,dataframe,csv,Python,Pandas,Dataframe,Csv,我对python的pandas模块知之甚少。我需要为我的项目创建一个DataFrame并将其存储在.csv文件中。我正在使用读取csv和读取csv功能。但是,当我比较这两个帧(导出前和导入前)时,我得到了不同的结果。这是最小可重复性示例: import sys from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd documents = [] documents.append("

我对python的pandas模块知之甚少。我需要为我的项目创建一个
DataFrame
并将其存储在.csv文件中。我正在使用
读取csv
读取csv
功能。但是,当我比较这两个帧(导出前和导入前)时,我得到了不同的结果。这是最小可重复性示例:

import sys
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd

documents = []
documents.append("i love python")
documents.append("foo bar")
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(documents)
X = X.T.toarray()
df = pd.DataFrame(X, index=vectorizer.get_feature_names())
df.to_csv(path_or_buf = "db.csv")
df1 = pd.read_csv("db.csv")
print(df.axes)
print()
print(df1.axes)
这就是印刷品:

[Index(['bar', 'foo', 'love', 'python'], dtype='object'), RangeIndex(start=0, stop=2, step=1)]

[RangeIndex(start=0, stop=4, step=1), Index(['Unnamed: 0', '0', '1'], dtype='object')]

如何使从.csv文件导入的
数据框与原始文件相同?

更新:为正在导出的数据框指定索引名称,并在读取导出的csv时使用该名称作为索引。这里我使用
向量
作为索引名

import sys
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd

documents = []
documents.append("i love python")
documents.append("foo bar")
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(documents)
X = X.T.toarray()
df = pd.DataFrame(X, index=vectorizer.get_feature_names())
df.index.name = 'vectors'


df.to_csv(path_or_buf="db.csv")
df1 = pd.read_csv("db.csv",index_col='vectors')

print(df)
print()
print(df1)
旧答案:通过将索引设置为false,尝试导出没有索引的csv

df.to_csv(path_or_buf="db.csv", index=False)

是的,这解决了添加列的问题,但是索引仍然不同:
[Index(['bar',foo',love',python'],dtype='object'),RangeIndex(start=0,stop=2,step=1)][RangeIndex(start=0,stop=4,step=1),Index(['0',1',dtype='object])
(很抱歉它在注释中的外观)@请参阅更新的答案。让我知道这是否是您所期望的。老实说,我问了这个问题,因为我在对第二个数据帧使用
loc
时遇到了一个KeyError异常,并认为这就是原因。您的答案解决了问题,但仍会引发异常,因此我不知道现在的问题是什么。@Баааааааааааааааа。