如何将csv文件与pandas连接

2024-06-16 11:38:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理数据,我想合并/连接一些csv文件。 我尝试了下面的代码,但有一个问题,当我运行脚本时,收到下面的错误消息。它好像不能读我的文件。在

注意:我的scrypt与我的csv文件位于同一个位置。在

我怎样才能修好它?在

谢谢!!!在

用水蟒和水蟒在窗户上工作。它运行python3.7

import os
import pandas as pd

L_Log= os.listdir('.')

L_LogClean=[]

for k in range(len(L_Log)):
    if 'Logfile_' in L_Log[k]:
        Tempo = L_Log[k]
        Tempo2 = Tempo[12:16]+Tempo[10:12]+Tempo[8:10]
        Tempo2 = int(Tempo2)
        L_LogClean.append(Tempo2)
        L_LogClean = sorted(L_LogClean)

for k in range(len(L_LogClean)):
    Tempo = str(L_LogClean[k])
    Tempo2 = 'Logfile_' + Tempo[6:8]+Tempo[4:6]+Tempo[0:4]+'.csv'
    L_LogClean[k] = Tempo2
    print(L_LogClean)


dfList=[]
colnames=['No.','Date','Time','Temp1','Unit','Temps2','Unit','Lux2','Unit','BP1','Humidité relat','Unit','CO2','Unit','Présence','Temp1_EnO','Unit','Temp3_EnO','Unit','RH3_EnO','Unit','Chauffage']
for filename in L_LogClean:
    print(filename)
    df=pd.read_csv(filename,header=None)
    dfList.append(df)
concatDf=pd.concat(dfList,axis=0)
concatDf.columns=colnames
concatDf.to_csv('Concat.csv')

我希望有一个csv文件,它是按名称排序的不同文件的连接。 运行脚本时,会显示以下错误消息:

^{pr2}$

但是我的文件Logfile_13052019.csv do与脚本在同一个文件夹中

更新:

dfList=[]
colnames=['No.','Date','Time','Temp1','Unit','Temps2','Unit','Lux2','Unit','BP1','Humidité relat','Unit','CO2','Unit','Présence','Temp1_EnO','Unit','Temp3_EnO','Unit','RH3_EnO','Unit','Chauffage']
for filename in L_Log:
    filename = "E://PJT/TEST2/" + filename
    print(filename)
    df=pd.read_csv(filename,header=None,error_bad_lines=False, encoding = "ISO-8859-1")
    dfList.append(df)
concatDf=pd.concat(dfList,axis=0)
concatDf.columns=colnames
concatDf.to_csv('Concat.csv')

我编辑了我的代码,得到了这个错误

ValueError: Length mismatch: Expected axis has 1 elements, new values have 22 elements

仍然阻止了这个脚本

更新2

I added the separator type on my script :
dfList=[]
colnames=['No.','Date','Time','Temp1','Unit','Temps2','Unit','Lux2','Unit','BP1','Humidité relat','Unit','CO2','Unit','Présence','Temp1_EnO','Unit','Temp3_EnO','Unit','RH3_EnO','Unit','Chauffage']
for filename in L_Log:
    filename = "E://PJT/TEST2/" + filename
    print(filename)
    df=pd.read_csv(filename,header=None, sep = ";", error_bad_lines=False, encoding = "ISO-8859-1")
    dfList.append(df)
concatDf=pd.concat(dfList,axis=0)
concatDf.columns=colnames
concatDf.to_csv('Concat.csv')

但我仍然有以下错误信息:

ValueError: Length mismatch: Expected axis has 25 elements, new values have 22 elements

更新3: 我改变了这个部分

dfList=[]
colnames=['bite','No.','Date','Time','Temp1','Unit','Temp2','Unit','Lux2','Unit','BP1','Humidité Relat','Unit','CO2','Unit','Présence','Temp1_EnO','Unit','Temp2_EnO','Unit','Temp3_EnO','Unit','RH3_EnO','Unit','Chauffage']
for filename in L_Log:
    filename = "E://PJT/TEST2/" + filename
    print(filename)
    df=pd.read_csv(filename,header=None, sep = ";", error_bad_lines=False, encoding = "ISO-8859-1")
    dfList.append(df)
concatDf=pd.concat(dfList,axis=0)
concatDf.columns=colnames
concatDf.to_csv('Concat2.csv')

我在末尾有一个连接的文件,但是当我用excel打开它时,每行的第一个单元格中都有类似的内容: 1,1,13.05.2019,00:01:21,“18,16”,摄氏度,“12,00”,摄氏度,“1,00”,勒克斯,0,37,%,487,ppm,0,“18,04”,摄氏度,“18,20”,摄氏度,“17,76”,摄氏度,“37,20”,%,0

Result of merging

但是床单应该是这样的: Normal form of the sheet


Tags: 文件csvinlogdfunitfilenamepd
1条回答
网友
1楼 · 发布于 2024-06-16 11:38:14

你正在读多少个文件?你的代码是否适用于其他文件而仅对这一个文件失败?或者这是您正在读取的第一个文件,但它失败了?在

错误看起来很简单,代码找不到文件。试着在终端中单独加载文件,看看会发生什么。如果不起作用,请提供文件的完整路径,然后读取它。请确保文件名完全匹配,因为这些路径区分大小写。在

更新:

for filename in L_LogClean:
    filename = complete_path_of_directory + filename
    print(filename)
    df=pd.read_csv(filename,header=None)
    dfList.append(df)

更新2:

^{pr2}$

相关问题 更多 >