0
点赞
收藏
分享

微信扫一扫

多csv文件转换为宽表

栖桐 2022-04-04 阅读 54
python

1、导入包

import numpy as np
import pandas as pd
import os
import csv
successDataPath =  "C:/Users/S/Desktop/不同数据集U_RATIO(BP)/csv/"
csvColumn = ['LOT','WAFER','END_TIME','AD0100_RATIO','PROCESS','STEP','EFFECT','REASON']
for root,dirs,files in os.walk(successDataPath):     #遍历文件夹和文件名
    #print(files)
    for i in files:
        step = i.split('.')[0]                       #split('.')以"."作为分隔符,split('.')[0]表示取第一个
        file=os.path.join(root,i)                    #os.path.join(root,i) :表示把root路径和i路径联立一起
        csv=pd.read_csv(file,encoding='utf8')        #pd.read_csv("csv文件路径"):表示读取csv文件
        
        diff  = list(set(csv.columns) - set(csvColumn))[0]  
        csvAll =  csv.loc[:,['LOT','WAFER','AD0100_RATIO']]   #loc是根据索引来取对应的行,iloc是根据行号开始,从0开始依次加一
        
        newColumn = csv.loc[:,[diff]].drop_duplicates().values.tolist()  #drop_duplicates()去除列的重复项
                                                                          #tolist()作用:将矩阵(matrix)和数组(array)转化为列表。
       
        for i in newColumn:        
            csvAll[step+"_"+str(i[0])] = 0 
        
        for index,column in csv.iterrows():                  #for index,column in csv.iterrows():对DataFrame函数进行遍历              
            csvAll.loc[index,step+'_'+ str(column[diff])]=1
        #print(csvAll)        

知识点:

for root,dirs,files in os.walk(successDataPath):     #遍历文件夹和文件名
 #split('.')以"."作为分隔符,split('.')[0]表示取第一个
 #os.path.join(root,i) :表示把root路径和i路径联立一起
  #pd.read_csv("csv文件路径"):表示读取csv文件
       
 csvAll =  csv.loc[:,['LOT','WAFER','AD0100_RATIO']]   #loc是根据索引来取对应的行,iloc是根据行号开始,从0开始依次加一
        
 newColumn = csv.loc[:,[diff]].drop_duplicates().values.tolist()  #drop_duplicates()去除列的重复项
  #tolist()作用:将矩阵(matrix)和数组(array)转化为列表。
       
#for index,column in csv.iterrows():对DataFrame函数进行遍历              
           

举报

相关推荐

0 条评论