Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何标记10个csv文件中的异常值/异常,并将标记的数据帧导出到1个xlsx文件(共10张图纸)_Python_Excel_Pandas_Csv - Fatal编程技术网

Python 如何标记10个csv文件中的异常值/异常,并将标记的数据帧导出到1个xlsx文件(共10张图纸)

Python 如何标记10个csv文件中的异常值/异常,并将标记的数据帧导出到1个xlsx文件(共10张图纸),python,excel,pandas,csv,Python,Excel,Pandas,Csv,我想做以下工作: 标记文件夹中10个.csv文件中的异常(所有10个文件都具有相同的列名a-J) 使用10张将标记的数据帧导出到1.xlsx(将10个标记的df附加到1个xlsx文件) 注:此处的异常定义为每行低于1500且高于100000的任何值 要一次标记一个文件,代码如下所示: import pandas as pd # intialise data of lists data = {'A':['R1', 'R2', 'R3', 'R4', 'R5'], 'B'

我想做以下工作:

  • 标记文件夹中10个
    .csv
    文件中的异常(所有10个文件都具有相同的列名a-J)

  • 使用
    10张
    将标记的数据帧导出到1
    .xlsx
    (将10个标记的df附加到1个xlsx文件)

  • 注:此处的异常定义为每行低于
    1500
    且高于
    100000
    的任何值

    要一次标记一个文件,代码如下所示:

    import pandas as pd
      
    # intialise data of lists
    data = {'A':['R1', 'R2', 'R3', 'R4', 'R5'],
             'B':[12005, 18190, 1021, 13301, 31119],
            'C':[11021, 19112, 19021,15, 24509 ],
            'D':[10022,19910, 19113,449999, 25519],
            'E':[14029, 29100, 39022, 24509, 412271],
            'F':[52119,32991,52883,69359,57835],
             'G':[41218, 52991,1021,69152,79355],
             'H': [43211,7672991,56881,211,77342],
              'J': [31211,42901,53818,62158,69325],
            }
      
    # Create DataFrame
    df = pd.DataFrame(data)
      
    # Print the output.
    df.describe()
    
    ## flagging anomalies in each row 
    def flag_outliers(s):
        # force to numeric and coerce string to NaN
        s = pd.to_numeric(s, errors='coerce')
        indexes = (s<1500)|(s>1000000)
        return ['background-color: red' if v else '' for v in indexes]
    
    styled = df.style.apply(flag_outliers, axis=1)
    
    styled.to_excel("flagged_outliers.xlsx", index=False)
    
    
    将熊猫作为pd导入
    #将列表的数据初始化
    数据={'A':['R1','R2','R3','R4','R5'],
    “B”:[1200518190102113301119],
    ‘C’:[1102119112119021,1524509],
    ‘D’:[1002219901911344999925519],
    "E:[14029291003902224509412271],,
    ‘F’:[5211932991528836935957835],
    ‘G’:[412185299110216915279355],
    ‘H’:[4321176729915688121177342],
    ‘J’:[312142901538186215869325],
    }
    #创建数据帧
    df=pd.DataFrame(数据)
    #打印输出。
    df.descripe()
    ##标记每行中的异常
    def标志_异常值:
    #强制为数字并强制字符串为NaN
    s=pd.to_numeric(s,errors='concurve')
    索引=(s1000000)
    返回['background-color:red'if v else''表示索引中的v]
    styled=df.style.apply(标记异常值,轴=1)
    styled.to_excel(“标记的_异常值.xlsx”,索引=False)
    
    标记数据帧的示例如下所示:

    import pandas as pd
      
    # intialise data of lists
    data = {'A':['R1', 'R2', 'R3', 'R4', 'R5'],
             'B':[12005, 18190, 1021, 13301, 31119],
            'C':[11021, 19112, 19021,15, 24509 ],
            'D':[10022,19910, 19113,449999, 25519],
            'E':[14029, 29100, 39022, 24509, 412271],
            'F':[52119,32991,52883,69359,57835],
             'G':[41218, 52991,1021,69152,79355],
             'H': [43211,7672991,56881,211,77342],
              'J': [31211,42901,53818,62158,69325],
            }
      
    # Create DataFrame
    df = pd.DataFrame(data)
      
    # Print the output.
    df.describe()
    
    ## flagging anomalies in each row 
    def flag_outliers(s):
        # force to numeric and coerce string to NaN
        s = pd.to_numeric(s, errors='coerce')
        indexes = (s<1500)|(s>1000000)
        return ['background-color: red' if v else '' for v in indexes]
    
    styled = df.style.apply(flag_outliers, axis=1)
    
    styled.to_excel("flagged_outliers.xlsx", index=False)
    
    


    提前感谢

    我想你可以在这里使用一个循环来获取读取csv文件并应用样式,然后在每个工作表中另存为excel,注意我使用了相同的路径来读取csv并保存输出excel,你可以通过定义路径2并在
    writer=…
    变量中使用它来更改输出路径:

    path = "full\\path\\to_folder\\"
    import glob
    import os
    
    files = glob.glob(path+"\*.csv")
    
    writer = pd.ExcelWriter(os.path.join(path,"combined.xlsx"), engine = 'xlsxwriter')
    for file in files:    
        dataframe = pd.read_csv(file)
        (dataframe.style.apply(flag_outliers, axis=1)
         .to_excel(writer, sheet_name = os.path.split(file)[-1][:-4],index=False))
    writer.save()
    
    这将使用csv文件名保存每个工作表中的数据帧