我正在从事一个工作项目,在没有使用Python的经验之后就将这段代码交给了我。我收到了KeyError消息,上面的行中有一些我不确定的红色文本。确切的文字如下:
File "/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py", line 1327, in _convert_to_indexer
.format(mask=objarr[mask]))
KeyError: "['First name' 'Last name' 'Company' 'Email address - other' 'Opened At'\n 'Company.1'] not in index"
我整天都在研究教程,并且了解到这个DataFrame没有索引这一事实是一个问题,但是我认为这是由于事实是它从一个不具有索引的文件中导入数据没有固定的名称。
这是我认为有问题的代码的开头部分:
import pandas as pd
import numpy as np
import glob, os
import re
# In[21]:
db = pd.DataFrame()
for file in glob.glob("report_*.csv"):
df = pd.read_csv(file, encoding = "ISO-8859-1")
db = db.append(df,ignore_index=True)
# In[22]:
db= db[['First name','Last name', 'Company', 'Email address - other','Opened At','Company.1']]
# In[23]:
db.columns = [c.replace(' ', '_') for c in db.columns]
db.columns = [c.replace('-', '_') for c in db.columns]
db.columns = [c.replace('.', '_') for c in db.columns]
当我打印(bd)时,我得到了:
Empty DataFrame
Columns: []
Index: []
因此,我认识到我需要添加一个索引,但是我不确定应该是什么。我相信生成的文件应该有6列,但是行数有所不同。
我愿意提供必要的任何信息,我只是无所适从,将不胜感激!
编辑:Print(df.head())产生:
print(df.head())
Traceback (most recent call last):
File "<ipython-input-17-873aa293d964>", line 1, in <module>
print(df.head())
NameError: name 'df' is not defined