【问题标题】:Regex/Difflib/Datastructure algorithm problemRegex/Difflib/Datastructure算法问题
【发布时间】:2021-01-29 10:01:14
【问题描述】:

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

  • ME_loard_MW
  • ME_loard
  • ME_load

将是 3 组单独数据的标题名称,我正在尝试开发一个函数来解析列名(熊猫)并将任何上传数据集的所有名称更改为特定集。我尝试过的方法是使用正则表达式函数,例如

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

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

【问题讨论】:

标签: python regex pandas csv difflib


【解决方案1】:

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

import pandas as pd

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

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

df.columns = column_names_set

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

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 2020-12-22
    • 2011-10-15
    • 1970-01-01
    • 2021-03-28
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多