学习记录:python处理杂乱数据

159 阅读2分钟

现有一组日期杂乱的数据,要求得到日期准确的数据。

杂乱数据:日期是错误的,但是数据值是正确的,且已知只有周一到周五的数据。

思路:将这组数据每隔五个插入两个数据,组合成日期连续的数据。

使用python语言,完成任务逻辑。

步骤:

  1. 导入Excel数据,得到dataframe类型数据。(我用的python做的,感觉python内置的函数,会简单方便一点)使用的是pandas库中read_excel函数将Excel数据导入python。

  2. 将dataframe数据转换成数组。pandas库中直接有values函数将dataframe类型数据转换成array数组类型。

  3. 使用for循环,每隔5个数据添加两个数据,这两个新数据是前一个数据值。简单的数据逻辑,使用append函数添加即可。(python就是这么可爱方便,数组也可以直接添加😁)

  4. 将新数组转换回dataframe类型,并重新写回Excel中。直接用Dataframe函数就可以直接转换了,再用to_excel函数导出数据到Excel表中即可。

    但其实此时得到的新数组有[[1],[2],[3]]类似的数据,不是正常的数组,尝试了很多办法去掉中括号“[]”,最后用如下办法(网上搜的)将得到的dataframe类型数据去掉中括号才得到正确的数据,使用的是“拉莫达函数”和strip函数去掉中括号。

    dataF['Value'] = dataF['Value'].apply(lambda x: str(x).strip('[]'))
    

image-20230421230929846.png

  1. 此时只需要在导出的Excel左侧插入一行,写下前两个日期,向下拖,就可以得到日期准确的数据了。

    杂乱的数据: image-20230421225729227.png 基于上述逻辑,得到如下代码(命名有点草率😅)

    import pandas as pd
    data=pd.read_excel(r"E:\GraduationDesign\Design\c题\LBMA-GOLD.xlsx",sheet_name="LBMA-GOLD")
    datai = []
    datai = data.values
    # 每隔5个数据添加2个数据
    new_data = []
    for i in range(len(datai)):
        new_data.append(datai[i])
        if(i+1)%5 == 0:
            new_data.append(datai[i])
            new_data.append(datai[i])
    dataF = pd.DataFrame({'Value':new_data})
    dataF['Value'] = dataF['Value'].apply(lambda x: str(x).strip('[]'))
    dataF.to_excel("E:\GraduationDesign\Design\c题\\newGOLD.xlsx",sheet_name="newGOLD")
    

    得到准确的数据如下图:

image-20230421230115111.png

总结:其实逻辑很简单,就是不太熟悉python了(上一次写还是两年前🤔时间过得真快啊)