精华内容
下载资源
问答
  • PYTHON Pandas批量读取csv文件到DATAFRAME 首先使用glob.glob获得文件路径。然后定义一个列表,读取文件后再使用concat合并读取到的数据。 #读取数据 import pandas as pd import numpy as np import glob,os path...
  • 相信很多人的日常工作中,数据源除了来自数据库以外,其次就是外部文件,因此掌握读取文件的技能是相当必要的。...读取单个CSV文件以下例子中,设置工作目录(这一步可用也可不用)只是为了方便,在批量读取文件的...

    相信很多人的日常工作中,数据源除了来自数据库以外,其次就是外部文件,因此掌握读取文件的技能是相当必要的。在这里特此整理读取外部文件的方法,希望能有助你们快速解决问题。当然本文对读者的假设是有一定的python基础知识。

    此篇就以pandas模块【读取CSV 】 为例,我会贴上我的代码截图

    【读取CSV 】

    1.读取单个CSV文件

    以下例子中,设置工作目录(这一步可用也可不用)只是为了方便,在批量读取文件的时候你更能体会它的好用;sep用来指定字符的分隔符号,常用的有空格 【''】,逗号【','】,【' '】

    当然我最喜欢的是sep = None, 选择这个之后,python会自动检测分隔符号,当你读取文件报错时,不妨改为 sep = None 试试。另外还有一个常用参数是header,指定数据是否包含指标名称的,默认为0,表示第0行是header;如果设置header = None,则下图中的日期,来访人数,购买人数也会被认为是数据。更多read_csv的参数见:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

    419e0f091ef1

    设置工作目录效果

    419e0f091ef1

    不设置工作目录效果

    2.批量读取csv文件

    工作中可能会遇到一个文件夹有很多csv文件,或许里面还有很多excel文件,且命名还不太一样,如果手动输入文件名,会累摊且也不是我们数据分析的方法。

    如下图2.1,我们先批量获取csv的文件名,然后再循环读取csv文件,相信细心的你已经发现指标名称乱码了,这时候我们就需要动用read_csv的encoding参数啦,使用方法见图2.2。

    其中有2个函数,os.path.splitext是将文件名分隔开;如abc.csv则分为'abc' 和'.csv'2部分,他们的切片位置是[0,1]那os.path.splitext[1]就表示'.csv'。另外os.walk()要想了解更多更细,就需要你们自行百度模索,这里就不作细说了。

    419e0f091ef1

    图2.1

    419e0f091ef1

    图2.2

    由于时间关系,这周先码这么多,下周再续

    展开全文
  • 解决思路:先读取需处理的csv文件名,去除文件夹下的无用文件,得到待处理文件地址名称和新文件保存的地址名称,分别读取每一个csv文件进行处理后写入新的文件。if __name__ == '__main__':filenames_in = '../...

    需求:

    1.大量csv文件,以数字命名,如1.csv、2.cvs等;

    2.逐个打开,对csv文件中的某一列进行格式修改;

    3.将更改后的内容写入新的csv文件。

    解决思路:

    先读取需处理的csv文件名,去除文件夹下的无用文件,得到待处理文件地址名称和新文件保存的地址名称,分别读取每一个csv文件进行处理后写入新的文件。

    if __name__ == '__main__':

    filenames_in = '../Train_data/' # 输入文件的文件地址

    filenames_out = '../Train_data1/' # 新文件的地址

    pathDir = os.listdir(filenames_in)

    for allDir in pathDir:

    child = re.findall(r"(.+?).csv", allDir) # 正则的方式读取文件名,去扩展名

    if len(child) > 0: # 去掉没用的系统文件

    newfile=''

    needdate = child #### 这个就是所要的文件名

    domain1 = os.path.abspath(filenames_in) # 待处理文件位置

    info = os.path.join(domain1, allDir) # 拼接出待处理文件名字

    domain2 = os.path.abspath(filenames_out) # 处理完文件保存地址

    outfo = os.path.join(domain2, allDir) # 拼接出新文件名字

    print(info, "开始处理")

    # ------省略数据处理过程----------------------

    df.to_csv(outfo, encoding='utf-8') # 将数据写入新的csv文件

    print(info,"处理完")

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

    本文标题: Python批量处理csv并保存过程解析

    本文地址: http://www.cppcns.com/jiaoben/python/313527.html

    展开全文
  • Python批量读取csv文件

    千次阅读 2019-01-03 16:28:30
    原文链接:... import pandas as pd import numpy as np import glob,os path = r'E:\wf\WFdata\UF' file = glob.glob(os.path.join(path, "*.csv")) print(file) dl = [] for f ...

    原文链接:https://www.jb51.net/article/148407.htm 

    import pandas as pd
    import numpy as np
    import glob,os
    path = r'E:\wf\WFdata\UF'
    file = glob.glob(os.path.join(path, "*.csv"))
    print(file)
    dl = []
    for f in file:
        dl.append(pd.read_csv(f))
    

    得到的结果是n个dl数据框,若选取哪个数据框进行操作,只需要使用dl[i]即可。

    展开全文
  • 行之间无空行十分重要,如果有...使用python I/O写入和读取CSV文件使用PythonI/O写入csv文件以下是将"birthweight.dat"低出生体重的dat文件从作者源处下载下来,并且将其处理后保存到csv文件中的代码。imp...

    行之间无空行十分重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发[list index out of range]错误。PS:已经被这个错误坑过很多次!

    使用python I/O写入和读取CSV文件

    使用PythonI/O写入csv文件

    以下是将"birthweight.dat"低出生体重的dat文件从作者源处下载下来,并且将其处理后保存到csv文件中的代码。

    import csv

    import os

    import numpy as np

    import random

    import requests

    # name of data file

    # 数据集名称

    birth_weight_file = 'birth_weight.csv'

    # download data and create data file if file does not exist in current directory

    # 如果当前文件夹下没有birth_weight.csv数据集则下载dat文件并生成csv文件

    if not os.path.exists(birth_weight_file):

    birthdata_url = 'https://github.com/nfmcclure/tensorflow_cookbook/raw/master/01_Introduction/07_Working_with_Data_Sources/birthweight_data/birthweight.dat'

    birth_file = requests.get(birthdata_url)

    birth_data = birth_file.text.split(' ')

    # split分割函数,以一行作为分割函数,windows中换行符号为' ',每一行后面都有一个' '符号。

    birth_header = birth_data[0].split(' ')

    # 每一列的标题,标在第一行,即是birth_data的第一个数据。并使用制表符作为划分。

    birth_data = [[float(x) for x in y.split(' ') if len(x) >= 1] for y in birth_data[1:] if len(y) >= 1]

    print(np.array(birth_data).shape)

    # (189, 9)

    # 此为list数据形式不是numpy数组不能使用np,shape函数,但是我们可以使用np.array函数将list对象转化为numpy数组后使用shape属性进行查看。

    with open(birth_weight_file, "w", newline='') as f:

    # with open(birth_weight_file, "w") as f:

    writer = csv.writer(f)

    writer.writerows([birth_header])

    writer.writerows(birth_data)

    f.close()

    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM1NTU3MTk=,size_16,color_FFFFFF,t_70

    常见错误list index out of range

    其中我们重点需要讲的是 with open(birth_weight_file, "w", newline='') as f: 这个语句。表示写入csv文件,如果不加上参数 newline='' 表示以空格作为换行符,而是用 with open(birth_weight_file, "w") as f: 语句。则生成的表格中会出现空行。

    20200403234316728.png

    不仅仅是用python I/O进行csv数据的读写时,利用其余方法读写csv数据,或者从网上下载好csv数据集后都需要查看其每行后有没有空格,或者有没有多余的空行。避免不必要的错误~影响数据分析时的判断。

    使用PythonI/O读取csv文件

    使用python I/O方法进行读取时即是新建一个List 列表然后按照先行后列的顺序(类似C语言中的二维数组)将数据存进空的List对象中,如果需要将其转化为numpy 数组也可以使用np.array(List name)进行对象之间的转化。

    birth_data = []

    with open(birth_weight_file) as csvfile:

    csv_reader = csv.reader(csvfile) # 使用csv.reader读取csvfile中的文件

    birth_header = next(csv_reader) # 读取第一行每一列的标题

    for row in csv_reader: # 将csv 文件中的数据保存到birth_data中

    birth_data.append(row)

    birth_data = [[float(x) for x in row] for row in birth_data] # 将数据从string形式转换为float形式

    birth_data = np.array(birth_data) # 将list数组转化成array数组便于查看数据结构

    birth_header = np.array(birth_header)

    print(birth_data.shape) # 利用.shape查看结构。

    print(birth_header.shape)

    #

    # (189, 9)

    # (9,)

    使用Pandas读取CSV文件

    import pandas as pd

    csv_data = pd.read_csv('birth_weight.csv') # 读取训练数据

    print(csv_data.shape) # (189, 9)

    N = 5

    csv_batch_data = csv_data.tail(N) # 取后5条数据

    print(csv_batch_data.shape) # (5, 9)

    train_batch_data = csv_batch_data[list(range(3, 6))] # 取这20条数据的3到5列值(索引从0开始)

    print(train_batch_data)

    # RACE SMOKE PTL

    # 184 0.0 0.0 0.0

    # 185 0.0 0.0 1.0

    # 186 0.0 1.0 0.0

    # 187 0.0 0.0 0.0

    # 188 0.0 0.0 1.0

    使用Tensorflow读取CSV文件

    本人在平时一般都是使用Tensorflow处理各类数据,所以对于使用Tensorflow读取数据在此不过多的进行解释。下面贴上一段代码,如果有不懂的地方可以看我原来的博客内容。

    '''使用Tensorflow读取csv数据'''

    filename = 'birth_weight.csv'

    file_queue = tf.train.string_input_producer([filename]) # 设置文件名队列,这样做能够批量读取文件夹中的文件

    reader = tf.TextLineReader(skip_header_lines=1) # 使用tensorflow文本行阅读器,并且设置忽略第一行

    key, value = reader.read(file_queue)

    defaults = [[0.], [0.], [0.], [0.], [0.], [0.], [0.], [0.], [0.]] # 设置列属性的数据格式

    LOW, AGE, LWT, RACE, SMOKE, PTL, HT, UI, BWT = tf.decode_csv(value, defaults)

    # 将读取的数据编码为我们设置的默认格式

    vertor_example = tf.stack([AGE, LWT, RACE, SMOKE, PTL, HT, UI]) # 读取得到的中间7列属性为训练特征

    vertor_label = tf.stack([BWT]) # 读取得到的BWT值表示训练标签

    # 用于给取出的数据添加上batch_size维度,以批处理的方式读出数据。可以设置批处理数据大小,是否重复读取数据,容量大小,队列末尾大小,读取线程等属性。

    example_batch, label_batch = tf.train.shuffle_batch([vertor_example, vertor_label], batch_size=10, capacity=100, min_after_dequeue=10)

    # 初始化Session

    with tf.Session() as sess:

    coord = tf.train.Coordinator() # 线程管理器

    threads = tf.train.start_queue_runners(coord=coord)

    print(sess.run(tf.shape(example_batch))) # [10 7]

    print(sess.run(tf.shape(label_batch))) # [10 1]

    print(sess.run(example_batch)[3]) # [ 19. 91. 0. 1. 1. 0. 1.]

    coord.request_stop()

    coord.join(threads)

    '''

    对于使用所有Tensorflow的I/O操作来说开启和关闭线程管理器都是必要的操作

    with tf.Session() as sess:

    coord = tf.train.Coordinator() # 线程管理器

    threads = tf.train.start_queue_runners(coord=coord)

    # Your code here~

    coord.request_stop()

    coord.join(threads)

    '''

    还有其他使用python读取文件的各种方法,这里介绍三种,不定期进行补充。

    展开全文
  • Python批量读取csv文件并合并文件

    万次阅读 多人点赞 2018-11-15 10:09:57
    import pandas as pd import os # 获取当前路径 cwd = os.getcwd() ...## 待读取批量csv的文件夹名称 Folder_Path = 'data_Q1_2018' ## 待保存的合并后的csv的文件夹名称 SaveFile_Path = 'data_Q1_2018_mer...
  • 假设上述csv文件保存为”A.csv”,如何用Python像操作Excel一样提取其中的一行,也就是一条记录,利用Python自带的csv模块,有2种方法可以实现: 方法一:reader 第一种方法使用reader函数,接收一个可迭代的对象...
  • 今天小编就为大家分享一篇使用python读取csv文件快速插入数据库的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python批量读取CSV文件并导入MySQL数据库中

    万次阅读 多人点赞 2019-01-08 15:12:25
    问题:本地有一大堆CSV文件需要导入到MySQL中 要求:一个CSV文件创建一张表,并以CSV文件名(去掉....于是就用Python写了一个脚本,自动读取本地文件夹下的csv文件,导入到MySQL中。 准备工作: 语言:python 2 ...
  • with open('C:\\Users\\lys\\Desktop\\countries_zh .csv','r') as f:#打开文件地址我的地址是这个别人的还得改一下 table=[]#开个列表 No1=f.readline()#读取一行因为我的第一行是目录所有先读取了就不用计算了 ...
  • python 批量读取 csv

    2021-05-26 17:40:15
    import os path_list = [] for diff_day in range(60): today = datetime.datetime.strftime((datetime.date(2021, 5, 15) ... each_path = "./data/xx_data_{}.csv".format(today) if os.path.exists(each_path):
  • I need to edit several csv files. Actually, most of the files are fine as they are, it's just the last (41st) column that needs to be changed. For every occurrence of a particular string in that colum...
  • 将多个CSV文件,合并到一个Excel文件中的,多个sheet工作表。 前言 网上大多方法都是将csv直接合并在一起,也不分别创建sheet表。 还有一些解答说CSV不支持合并到多个sheet表。 网上有用宏命令的,我试了,但是...
  • 实现了读取文件夹中多个csv文件并将其逐个转换为excel文件,最后将excel文件压缩成.zip压缩包 import zipfile import pandas as pd import os class csv_excel_zip(): ''' 读取一个文件夹内的所有csv文件,并将其...
  • 恰巧在昨天处理了一份csv数据,今天便花一些时间整理了如何利用Python批量读取csv文件为dataframe格式的数据。 #####第一步,导入包 import os import glob import pandas as pd #####第二步,找到需要的所有csv...
  • 读取csv import pandas as pd import numpy as np import os os.chdir("./data") # 设置工作目录 file_chdir = os.getcwd() # 获得工作目录 filename_npy = [] # 文件名列表 file_npy = [] # 数据列表 for root,...
  • Python读写csv文件前言逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含...
  • 行之间无空行十分重要,如果有...使用python I/O写入和读取CSV文件使用PythonI/O写入csv文件以下是将"birthweight.dat"低出生体重的dat文件从作者源处下载下来,并且将其处理后保存到csv文件中的代码。imp...
  • 一开始打算用python写一个脚本,用pandas读取数据后形成批量insert语句,再执行SQL将数据插入到数据库表,测试发现数据导入太慢,一直卡住,分析发现频繁读写数据库对数据库压力较大,极不稳定。 后来改为批量形成...
  • 有些人看到这个问题觉得不是问题,是嘛,不就是df.col[]函数嘛,其实忽略了一个重点,那就是我们要省去把csv文件全部读取这个过程,因为如果在面临亿万级别的大规模数据,得到的结果就是boom,boom,boom。...
  • CSV(Comma-Separated Values)即逗号...如果CSV中有中文,应以utf-8编码读写,如果要支持Excel查看,应是要用utf-8 with bom格式及utf-8-sigPython3操作CSV文件使用自带的csv包reader=csv.reader(f, delimiter=','...
  • There is a lot of examples of reading csv data using python, like this one:import csvwith open('some.csv', newline='') as f:reader = csv.reader(f)for row in reader:print(row)I only want to read one li...
  • 最近工作需要处理大量csv文件转换成...” 作为分隔符,查了半天终于找到答案,在读取csv文件时可以指定分隔符号sep=';',研究了很久终于大功告成,记录一下以便查看。下面附带全部代码。 data_csv = pd.read_csv(f...
  • Python批量处理csv文件(筛选列)

    千次阅读 2020-12-09 16:59:27
    Python批量处理csv文件前言代码总结 前言 批量读取同一文件夹下的csv文件,进行数据处理(这里是挑选需要的列向量,生成新文件),保存到新文件夹(csv文件同名) 代码 #!/user/bin/env python3 # -*- coding: utf-...
  • 下面给大家介绍下pandas读取CSV文件时查看修改各列的数据类型格式,具体内容如下所述:我们在调bug的时候会经常查看、修改pandas列数据的数据类型,今天就总结一下:1.查看:Numpy和Pandas的查看方式略有不同,一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,564
精华内容 2,225
关键字:

python批量读取csv文件

python 订阅