python - 熊猫会自动在第一个位置添加一行和一列吗?
问题描述
我正在使用 pandas 来合并一些 csv 文件(csv 文件的数量范围可能会有所不同)。当我运行脚本时,似乎自动添加了一列和一行(如下图所示)。
我将 pandas 与 python 3.7 一起使用并运行基于 Windows 操作系统的计算机。我使用 Excel 打开 csv 文件。
这是代码:
import os
import pandas as pd
L_Log= os.listdir('E://PJT/TEST2/')
dfList=[]
for filename in L_Log:
filename = "E://PJT/TEST2/" + filename
typefile=type(filename)
print = typefile
print(filename)
df=pd.read_csv(filename,header=None, sep = ';', error_bad_lines=False, encoding="ANSI")
#df[1:] = [test[1:] for test in df[1:]]
dfList.append(df)
concatDf=pd.concat(dfList,axis=0)
concatDf.to_csv('Concat2.csv', sep = ';')
我得到的结果如图所示,用excel突出显示的是我所期望的:图片
谢谢你的帮助 !
更新:我稍微更改了代码:我在添加列标题时删除了该部分,并添加了一个
concatDf.to_csv('Concat2.csv', sep = ';',index=False)
这是完整的新脚本:
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','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
typefile=type(filename)
print = typefile
print(filename)
df=pd.read_csv(filename,header=None, sep = ';', error_bad_lines=False, encoding="ANSI")
#df[1:] = [test[1:] for test in df[1:]]
dfList.append(df)
concatDf=pd.concat(dfList,axis=0)
#concatDf.columns=colnames
concatDf.to_csv('Concat2.csv', sep = ';',index=False)
现在文件看起来是正确的,但是:它为每个文件添加了列的名称(显然我希望第一行显示列的标题)这是我得到的一个例子:我得到了什么 谢谢!
解决方案
您需要同时设置index
和header
为None
。(在我看来并不完全直观,但应该如此,index
但columns
你能做什么。)
为防止您的列名在数据中重复,您需要将 csv 文件中的列名设置为数据框中的列名。您需要header
在您正在读取 csv 文件的 for 循环中编辑参数read_csv
:
for filename in L_Log:
...
df=pd.read_csv(filename,header=0, ...)
...
推荐阅读
- php - PUT 表单导致 404 Not Found (Laravel)
- python - 从给定列表创建一个新列表,以便新列表可以标记给定列表中的连续重复
- dart - 如何从流中获取文章对象
- >>
- wpf - ModernUI 框架支持哪些版本的 .NET 和 WPF?
- heroku - gpg --在 Heroku 上导入
- python-3.x - 函数将迭代目标读取为本地参数字符串,而不是 for 循环中的迭代值
- excel - 如何使用 UsedRange.Find(What:=, LookAt:=) 在单元格中搜索多个子字符串
- fingerprint - Vkontakte sdk_fingerprint 仅在随机设备上不正确
- unity3d - 如何在 Unity fom Vuforia 中动态加载数据集?
- javascript - 如何调试对 Node.js Express 应用程序的 POST 请求?