正则表达式/ Difflib /数据结构算法问题

问题描述

预先感谢您的帮助。对于当前的问题,我有点不高兴,我的数据集都以CSV格式表示相同的数据,除了列名在一定程度上有所不同,例如

  • ME_loard_MW
  • ME_loard
  • ME_load

将是3个独立数据集的标题名称,我正在尝试开发一个函数来解析列名称(pandas)并将所有已上传数据集的所有名称更改为特定的集合。我尝试过的方法使用的是Regex函数,例如

def renamefunc(col_name):
    if re.match(myregex,col_name,flags=re.I):
        return "FLOW202"
    else:
        return col_name

我还考虑过使用difflib模块(get_close_matches),因为所有列名都足够不同,以至于第一个列表元素将成为我要定位的元素。最后,我一直在考虑使用字典/算法,但是自从四月份开始编程以来,这有点超出我的范围了。任何输入/反馈/批评都非常受欢迎,我的目标是提高! 附件是我期望遇到的数据集类型的图像

解决方法

似乎您想将所有数据集中的列名更改为特定的集合。假设您所有的数据集都是对齐的,即它们的列以相同的顺序出现,您可以像这样简单地设置列名称:

import pandas as pd

df = pd.DataFrame({'name':['A','A','B','C','C'],'year': ['2013','2013','2014','2015','2015'],'type': ['up','down','up','down'],'cost': [30,15,20,30,25]})

column_names_set = ('Name','Year','Type','Cost')

df.columns = column_names_set

我不能比这更具体,因为我看不到您的数据集。可能您打算附加的图像无效。