python读csv文件时指定行为表头或无表头的方法

yipeiwu_com7年前Python基础

pd.read_csv()方法中header参数,默认为0,标签为0(即第1行)的行为表头。若设置为-1,则无表头。示例如下:

(1)不设置header参数(默认)时:

df1 = pd.read_csv('target.csv',encoding='utf-8')
df1

(2)header=1时:

import pandas as pd
df2 = pd.read_csv('target.csv',encoding='utf-8',header=1)
df2
 

  

(3)header=-1时(可用于读取无表头CSV文件):

df3 = pd.read_csv('target.csv',encoding='utf-8',header=-1)
df3
 

 

PS:python 从 CSV 文件中删除表头

假设你有一个枯燥的任务,要删除几百 CSV 文件的第一行。也许你会将它们送入一个自动化的过程,只需要数据,不需要每列顶部的表头。可以在 Excel 中打开每个文件,删除第一行,并重新保存该文件,但这需要几个小时。让我们写一个程序来做这件事。该程序需要打开当前工作目录中所有扩展名为.csv 的文件,读取 CSV 文件的内容,并除掉第一行的内容重新写入同名的文件。这将用新的、无表头的内容替换CSV 文件的旧内容。

总的来说,该程序必须做到以下几点:

  • 找出当前工作目录中的所有 CSV 文件。
  • 读取每个文件的全部内容。
  • 跳过第一行,将内容写入一个新的 CSV 文件。

在代码层面上,这意味着该程序需要做到以下几点:

  • 循环遍历从 os.listdir()得到的文件列表,跳过非 CSV 文件。
  • 创建一个 CSV Reader 对象,读取该文件的内容,利用 line_num 属性确定要跳过哪一行。
  • 创建一个 CSV Writer 对象,将读入的数据写入新文件。针对这个项目,打开一个新的文件编辑器窗口,并保存为 removeCsvHeader.py。 

循环遍历每个 CSV 文件

程序需要做的第一件事情,就是循环遍历当前工作目录中所有 CSV 文件名的列表。让 removeCsvHeader.py 看起来像这样:

#! python3
# removeCsvHeader.py - Removes the header from all CSV files in the current
# working directory

import csv, os

os.makedirs('headerRemoved', exist_ok=True)

# Loop through every file in the current working directory.
for csvFilename in os.listdir('.'):
	if not csvFilename.endswith('.csv'):
		continue	# skip non-csv files

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

selenium+python自动化测试之页面元素定位

selenium+python自动化测试之页面元素定位

上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器...

Python+OpenCV图片局部区域像素值处理改进版详解

Python+OpenCV图片局部区域像素值处理改进版详解

上个版本的Python OpenCV图片局部区域像素值处理,虽然实现了我需要的功能,但还是走了很多弯路,我意识到图片本就是数组形式,对于8位灰度图,通道数为1,它就是个二位数组,这样就没...

python多维数组切片方法

1、数组a第0个元素(二维数组)下的所有子元素(一维数组)的第一列 import numpy as np b=np.arange(24) a=b.reshape(2,3,4) pri...

pytorch打印网络结构的实例

pytorch打印网络结构的实例

最简单的方法当然可以直接print(net),但是这样网络比较复杂的时候效果不太好,看着比较乱;以前使用caffe的时候有一个网站可以在线生成网络框图,tensorflow可以用tens...

python队列queue模块详解

队列queue 多应用在多线程应用中,多线程访问共享变量。对于多线程而言,访问共享变量时,队列queue是线程安全的。从queue队列的具体实现中,可以看出queue使用了1个线程互斥锁...