总新手,这是我的第一个问题,所以提前为任何无意的失礼道歉。
我有一个Excel xlsx格式的大型(ish)数据集,我想将其导入到pandas数据帧中。除第一列没有标题标签外,数据具有列标题。以下是excel表的样子:
我在Pandas中使用read_excel()来读取数据。我使用的代码是:
df = pd.read_excel('Raw_Data.xlsx', sheetname=0, labels=None, header=0, index_col=None)
(我已经尝试过index_col = false或0但是,由于显而易见的原因,它并没有改变任何东西)
列的标题可以正常拾取,但第一列(在下图中以红色圈出)被指定为索引。
我想从read_excel命令得到的内容如下,索引用红色圈出:
我有其他excel表,我使用read_excel()导入到pandas中,pandas会自动添加一个数字增量索引,而不是将其中一列作为索引推断。
这些excel表中没有一个在列标题中缺少标签,虽然这可能是问题,但我不确定。
据我所知,我可以在导入后使用reset_index()命令来获取正确的索引。
想知道是否可以在不必执行reset_index()和read_excel()命令的情况下完成。即无论如何都要阻止推断索引或强制pandas像往常一样在索引列中添加。
提前谢谢!
答案 0 :(得分:0)
由于单元格A1中缺少值,我认为只能使用read_excel函数才能执行此操作。如果您想在使用pandas读取文件之前在该单元格中插入内容,可以考虑使用openpyxl,如下所示。
from openpyxl import load_workbook as load
path = 'Raw_Data.xlsx'
col_name = 'not_index'
cell = 'A1'
def write_to_cell(path, col_name, cell):
wb = load(path)
for sheet in wb.sheetnames:
ws = wb[sheet]
if ws[cell].value is None:
ws[cell] = col_name
wb.save(path)