如何用python提取excel中的上标或下标数据

2024-09-30 10:28:22 发布

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

我想用python在excel中分析化学公式数据。因为excel数据已经有了区分电荷或原子序数的格式,所以我不需要从头解释它。但是当我用python阅读它时遇到了一些困难

enter image description here

pandasxlrdopenpyxl,甚至python-docx,他们都无法读取上标可分辨的数据。这一切都被视为纯文本。而且上标或下标的格式似乎无法直接匹配

如果不从头解释,我如何才能完成任务?无论是python还是其他任何数据处理工具都可以


Tags: 数据文本pandas格式excel区分数据处理公式
2条回答

表达复杂公式的常用方法是使用LaTex,python有一个名为PyLaTex的模块

但是,它可能无法读取Mircrosoft格式的公式。您可能需要搜索翻译程序/网站,将*.doc中编写的公式翻译为Latex脚本。-即 https://www.grindeq.com/https://www.docx2latex.com/

我认为您需要用Python打开文件,格式化并保存到excel中,然后重新进行分析。 这就是我的意思。 首先打开文件并将每一行放入列表中 然后做一个for循环,将不同的下标和上标转换成可以区分的东西。下面是一个示例代码

    import csv
    csvfile = open('file.csv')
    reader = csv.DictReader(csvfile)

    dictList = []
    
    for line in reader: dictList.append(line)
    
    csvfile.close()

# Making the modifications inside our list, which 
   contains
# a dictionary for each line in the CSV.

for line in dictList:
    for key in line:
        line[key] = line[key].replace('\\', '\\\\')
        line[key] = line[key].replace('#', '\\#')
        line[key] = line[key].replace('_', '\\_')
        line[key] = line[key].replace('&', '\\&')

    # Writing the new lines to a new file.
    
    with open('output.csv', 'w') as outfile:
        fieldnames = ['Field 1', 'Field 2', 'Field 3']
        writer = csv.DictWriter(outfile, 
     fieldnames=fieldnames)
    
        writer.writeheader()
        for line in dictList:
         writer.writerow(line)

相关问题 更多 >

    热门问题