防止熊猫自动分配(即推断)索引读取Excel / 读取CSV

2024-09-29 19:32:09 发布

您现在位置:Python中文网/ 问答频道 /正文

完全是新手,这是我的第一个问题,所以请提前为任何无意的失礼道歉。在

我有一个excelxlsx格式的大(ish)数据集,我想导入到pandas数据框中。除第一列没有标题标签外,数据具有列标题。以下是excel工作表的外观:

Raw data

我在Pandas中使用read_excel()读取数据。我使用的代码是: df = pd.read_excel('Raw_Data.xlsx', sheetname=0, labels=None, header=0, index_col=None)

(我尝试过index_col=false或0,但由于明显的原因,它不会改变任何东西)

列的标题可以很好地提取,但是第一列(在下图中用红色圈起来)被指定为索引。在

wrong index

我试图从read_excel命令得到的结果如下,索引用红色圈起来:

correct index

我还使用read_excel()导入pandas中的其他excel表,pandas会自动添加一个数值增量索引,而不是推断其中一个列作为索引。在

这些excel表中没有一个列标题中缺少标签,尽管我不确定这可能是这里的问题。在

我知道可以在导入之后使用reset_index()命令来获取正确的索引。在

不知道是否可以在不必执行reset_index()和read_excel()命令的情况下完成。i、 e.是否有任何方法可以防止索引被推断,或者强制pandas像通常那样在索引列中添加内容。在

提前谢谢你!在


Tags: 数据命令none标题pandasreadindexraw
1条回答
网友
1楼 · 发布于 2024-09-29 19:32:09

我认为你不能只使用read_excel函数,因为单元格A1中缺少值。如果您想在用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)

相关问题 更多 >

    热门问题