精华内容
下载资源
问答
  • 2021-01-13 09:27:52

    pandas和fit_generator配合使用时,不想将数据全部读入内存,因为实际上也读入不了,数据量太大了。以下是如何按batch_size大小读取:

    1、准备数据:

    1 a = pd.DataFrame(a)

    2 a = [

    3 [1, 1, 1, 1],

    4 [2, 2, 2, 2],

    5 [3, 3, 3, 3],

    6 [4, 4, 4, 4],

    7 [5, 5, 5, 5],

    8 [6, 6, 6, 6],

    9 ]

    10 a = pd.DataFrame(a)

    11 a.to_csv("../a.csv", index=False)

    2、读入原始数据:

    1 pd.read_csv("../a.csv")

    输出:

    2 0 1 2 3

    3 0 1 1 1 1

    4 1 2 2 2 2

    5 2 3 3 3 3

    6 3 4 4 4 4

    7 4 5 5 5 5

    8 5 6 6 6 6

    3、读取前几行:

    1 pd.read_csv("../a.csv", nrows=2)

    输出:

    2 0 1 2 3

    3 0 1 1 1 1

    4 1 2 2 2 2

    4、跳过某些行,或跳过前多少行:

    1 pd.read_csv("../a.csv", skiprows=1, nrows=2)

    输出:

    2 1 1.1 1.2 1.3

    3 0 2 2 2 2

    4 1 3 3 3 3

    5 pd.read_csv("../a.csv", skiprows=lambda x: x % 2 != 0)

    输出:

    6 0 1 2 3

    7 0 2 2 2 2

    8 1 4 4 4 4

    9 2 6 6 6 6

    通过skiprows指定跳过多少行,nrows参数取前多少行就可以实现batch_size大小的输入。

    标签:读取,..,read,skiprows,按行,pd,csv

    来源: https://www.cnblogs.com/dan-baishucaizi/p/12084175.html

    更多相关内容
  • PYTHON Pandas批量读取csv文件到DATAFRAME 首先使用glob.glob获得文件路径。然后定义一个列表,读取文件后再使用concat合并读取到的数据。 #读取数据 import pandas as pd import numpy as np import glob,os path...
  • 第一:pandas.read_csv读取本地csv文件为数据框形式 data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.csv') 第二:如果存在日期格式数据,利用pandas.to_datatime()改变类型 data.iloc[:,1]=pd....
  • 最近在尝试分析骑行数据,发现电脑在执行统计分析一些维度的数据时比较...使用Python读取CSV文件并写入MySQL的方法比较多,比如使用Pandas的to_sql方法,或者读取CSV之后批量写入MySQL,而本文分享的是逐条读取&...

    最近在尝试分析骑行数据,发现电脑在执行统计分析一些维度的数据时比较慢,很不方便实时的验证想法,寻思最终都以Matplotlib画图呈现,就考虑把数据写入MySQL,然后通过查询结果作图,也方便后续分析其它问题,所以就有了这篇分享。

    使用Python读取CSV文件并写入MySQL的方法比较多,比如使用Pandas的to_sql方法,或者读取CSV之后批量写入MySQL,而本文分享的是逐条读取&写入。

    数据源

    分析的数据是2015年Citi-Bike的数据,来自CitiBike官网。

    打开CSV文件,看到的内容如下图。

    如下是步骤向数据库kai_test创建数据表,脚本如下。

    # -*- coding: utf-8 -*-

    import pymysql

    # 1.链接数据库

    db = pymysql.connect(

    host='127.0.0.1',

    port=3306,

    user='***',

    passwd='***',

    db='kai_test',

    charset='utf8')

    # 建立链接游标

    cursor = db.cursor()

    print ('>> 已连接数据表,处理中...')

    # 2.添加数据库表头(创建的字段,不要使用空格)

    sql = '''CREATE TABLE IF NOT EXISTS kai_test (`ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`tripduration` CHAR(10),`starttime` CHAR(30),`stoptime` CHAR(30),`start_station_id` CHAR(10),`start_station_name` CHAR(60),`start_station_latitude` CHAR(20),`start_station_longitude` CHAR(20),`end_station_id` CHAR(10),`end_station_name` CHAR(60),`end_station_latitude` CHAR(20),`end_station_longitude` CHAR(20),`bikeid` CHAR(10),`usertype` CHAR(15),`birth_year` CHAR(10),`gender` CHAR(2))'''

    cursor.execute(sql)

    # 3.提交并关闭链接

    cursor.close()

    db.close()

    print ('>> Done.')

    2. 先读取指定目录的所有CSV文件,然后逐个读取并逐条写入MySQL,脚本如下。

    # -*- coding: utf-8 -*-

    import pymysql,time

    import glob,os

    import pandas as pd

    # 1.准备,指定目录

    time_start = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 记录当前时间

    print('>> 当前时间:',time_start)

    print('>> 开始处理……')

    filelocation = r"D:/Year2015-citibike-tripdata/Data_all/"

    # 2.链接数据库

    print('>> 连接MySQL...')

    db = pymysql.connect(

    host='127.0.0.1',

    port=3306,

    user='***',

    passwd='***',

    db='kai_test',

    charset='utf8')

    # 建立链接游标

    cursor = db.cursor()

    print ('>> 已连接数据表。')

    # 3.查看本地新文件名

    filenames=[]

    os.chdir(filelocation) #指定目录

    for i in glob.glob("*.csv"): # 获取指定目标下所有的CSV文件名

    filenames.append(i[:-4]) # 文件名不包含“.csv”

    count = len(filenames)

    print('>> 本地文件:',count,'个') # 如下是以“Num.**”为序号打印出每个文件名

    for i in range(0,count): # 把0-9的数字用0补齐2位,也可以用zfill函数或者format格式化实现

    if i<9:

    ii = i+1

    ij = '0'+str(ii)

    else:

    ij = i+1

    print(' - Num.', end='')

    print(ij, filenames[i])

    # 4.把新文件的数据提交mysql

    print('>> 读取中...')

    # MySQL语句

    insert_sql = 'insert into kai_test (tripduration,starttime,stoptime,start_station_id,start_station_name,start_station_latitude,start_station_longitude,end_station_id,end_station_name,end_station_latitude,end_station_longitude,bikeid,usertype,birth_year,gender) values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)'

    # 开始逐个文件处理

    for file_name in filenames:

    print(" + 正在处理:", file_name,'(第',filenames.index(file_name)+1,'个)')

    time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 记录处理每个文件的时间

    print(' - 当前时间:', time_now)

    data_csv = pd.read_csv(open(filelocation + file_name+'.csv')) # 使用Pandas读取数据文件

    # print(data_csv.head(3)) # 查看前3条数据

    # print(data_csv.info()) # 查看数据表信息

    # print(len(data_csv.index)) # 查看数据量

    # print(data_csv.loc[2].values) # 查看指定某一行的数据

    ii = 0 # 用于统计每个文件的数据量

    for i in range(0,data_csv.shape[0]): # 逐行读取

    row = data_csv.loc[i].values # 获取第i行数据

    # print(i,'>>:',data_csv.loc[i].values) # 打印第i行数据

    cursor.execute(insert_sql, (str(row[0]), str(row[1]), str(row[2]), str(row[3]), str(row[4]), str(row[5]), str(row[6]), str(row[7]),

    str(row[8]), str(row[9]), str(row[10]), str(row[11]), str(row[12]), str(row[13]), str(row[14])))

    ii = i + 1

    print(' - 提交数量:',ii,'条')

    # 5.结束

    db.commit() # 提交记录

    db.close() # 关闭db

    cursor.close() # 关闭游标

    time_finish = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 记录当前时间

    print('>> 当前时间:',time_finish)

    print('\n',end='')

    print('>> Done.') #完毕

    数据库预览如下图。

    补充说明

    运行过程日志如下图。

    展开全文
  • pandas读取csv文件获取自己想要的信息问题描述解决办法 问题描述 深度学习模型训练过程中会生成很多的csv表格,手动处理太麻烦。 解决办法 还是代码处理比较方便。 import pandas as pd import os from pandas ...

    pandas批量读取csv文件获取某一行某一列的固定值


    问题描述

    深度学习模型训练过程中会生成很多的csv表格,手动处理太麻烦。
    在这里插入图片描述

    解决办法

    还是代码处理比较方便。

    import pandas as pd
    import os
    
    from pandas import DataFrame
    def flatten(a):
        #降维函数,把多维降为一维
        for each in a:
            if not isinstance(each, list):
                yield each
            else:
                yield from flatten(each)
    
    def convert_to_int(lists):
        #在Python中将嵌套列表列表的元素从字符串转换为整数
        return [int(el) if not isinstance(el,list) else convert_to_int(el) for el in lists]
    
    def walk_dir(dir,topdown=True):
        for root, dirs, files in os.walk(dir, topdown):
            ACC_train = []
            ACC_test = []
            LOSS_train = []
            LOSS_test = []
            for name in files:
                ####选择以cvs结尾的文件
                if name.endswith('.csv'):
                    ####筛选包含layer关键词的文件####
                    layer = []
                    td = []
                    for l in range(1,11):
                        L = "CNN" + str(l)
                        layer.append(L)
                        if layer[l-1] in name:
                            for d in range(1,11):
                                TD = "td" + str(d*510)
                                td.append(TD)
                                if td[d-1] in name:
                                   # print(name)
                                   # print(root)
                                   ####返回文件的路径####
                                   pathname = os.path.join(root, name).replace("\\","/")
                                   # print(pathname)
                                   ####读取csv文件####
                                   data = pd.read_csv(pathname,header=None)
                                   # print('原始的表格:\n',data)
                                   df = DataFrame(data)
                                   ####为表格添加列名####
                                   column =[]
                                   for i in range (1,101):
                                       m = "epoch"+str(i)
                                       column.append(m)
                                   # print('column:\n', column)
    
                                   df.columns = column
                                   # print('添加了列名的表格:\n', df)
    
                                   ####截取trainacc所在行数据####
                                   df_trainacc = df.iloc[4:5]
                                   df_testacc = df.iloc[5:6]
                                   df_trainloss = df.iloc[6:7]
                                   df_testloss = df.iloc[7:8]
                                   df_trainacc = df_trainacc.dropna(axis=1, how='all')
                                   df_testacc = df_testacc.dropna(axis=1, how='all')
                                   df_trainloss = df_trainloss.dropna(axis=1, how='all')
                                   df_testloss = df_testloss.dropna(axis=1, how='all')
    
                                   # 以"|"为分割符分列,返回Series
                                   df_trainacc = df_trainacc["epoch1"].str.split(":",expand=True).fillna("")
                                   df_testacc = df_testacc["epoch1"].str.split(":", expand=True).fillna("")
                                   df_trainloss = df_trainloss["epoch1"].str.split(":", expand=True).fillna("")
                                   df_testloss = df_testloss["epoch1"].str.split(":", expand=True).fillna("")
                                   # print('df_trainacc:\n', df_trainacc)
    
                                   #删除第一列数据
                                   df_trainacc_drop = df_trainacc.drop([0], axis=1)
                                   df_testacc_drop = df_testacc.drop([0], axis=1)
                                   df_trainloss_drop = df_trainloss.drop([0], axis=1)
                                   df_testloss_drop = df_testloss.drop([0], axis=1)
                                   # print('df_trainacc_drop:\n', df_trainacc_drop)
    
                                   #获取trainacc的数值
                                   df_trainacc_drop_value = df_trainacc_drop.values
                                   df_testacc_drop_value = df_testacc_drop.values
                                   df_trainloss_drop_value = df_trainloss_drop.values
                                   df_testloss_drop_value = df_testloss_drop.values
    
                                   #对获取的数据进行降维等处理
                                   x1 = [token for st in df_trainacc_drop_value for token in st]
                                   trainacc = [ float(x) for x in x1 ]
                                   # print("x1:", x1)
                                   x2 = [token for st in df_testacc_drop_value for token in st]
                                   testacc = [float(x) for x in x2]
                                   x3 = [token for st in df_trainloss_drop_value for token in st]
                                   trainloss = [float(x) for x in x3]
                                   x4 = [token for st in df_testloss_drop_value for token in st]
                                   testloss = [float(x) for x in x4]
                                   # print("trainacc:", trainacc)
                                   data_trainacc = [l,d,trainacc[0]]
                                   data_testacc = [l, d, testacc[0]]
                                   data_trainloss = [l, d, trainloss[0]]
                                   data_testloss = [l, d, testloss[0]]
                                   ####将第i层第j个数据量下的trainacc保存起来
                                   ACC_train.append(data_trainacc)
                                   ACC_test.append(data_testacc)
                                   LOSS_train.append(data_trainloss)
                                   LOSS_test.append(data_testloss)
    
            print("ACC_train:",ACC_train)
            print("ACC_test:", ACC_test)
            print("LOSS_train:", LOSS_train)
            print("LOSS_test:", LOSS_test)
    
    
    dirname = "P:/Research/originaldata"
    walk_dir(dirname)
    
    

    我的代码写的还是比较菜的,不过反正比手动的快。
    结果如下:
    在这里插入图片描述

    展开全文
  • # 读取csv文件 3列取名为 name,sex,births,后面参数格式为names= names1880 = pd.read_csv("names_1880.txt", names=['name', 'sex', 'births']) print names1880 print names1880.groupby('sex').births.sum() ...
  • PYTHON Pandas批量读取csv文件到DATAFRAME首先使用glob.glob获得文件路径。然后定义一个列表,读取文件后再使用concat合并读取到的数据。#读取数据import pandas as pdimport numpy as npimport glob,ospath=r'e:...

    PYTHON Pandas批量读取csv文件到DATAFRAME

    首先使用glob.glob获得文件路径。然后定义一个列表,读取文件后再使用concat合并读取到的数据。

    #读取数据

    import pandas as pd

    import numpy as np

    import glob,os

    path=r'e:tjmonthfx1806'

    file=glob.glob(os.path.join(path, "zq*.xls"))

    print(file)

    dl= []

    for f in file:

    dl.append(pd.read_excel(f,header=[0,1],index_col=None))

    df=pd.concat(dl)

    下面看下Python使用pandas处理CSV文件的方法

    Python中有许多方便的库可以用来进行数据处理,尤其是Numpy和Pandas,再搭配matplot画图专用模块,功能十分强大。

    CSV(Comma-Separated Values)格式的文件是指以纯文本形式存储的表格数据,这意味着不能简单的使用Excel表格工具进行处理,而且Excel表格处理的数据量十分有限,而使用Pandas来处理数据量巨大的CSV文件就容易的多了。

    我用到的是自己用其他硬件工具抓取得数据,硬件环境是在Linux平台上搭建的,当时数据是在运行脚本后直接输出在terminal里的,数据量十分庞大,为了保存获得的数据,在Linux下使用了数据流重定向,把数据全部保存到了文本文件中,形成了一个本地csv文件。

    Pandas读取本地CSV文件并设置Dataframe(数据格式)

    import pandas as pd

    import numpy as np

    df=pd.read_csv('filename',header=None,sep=' ') #filename可以直接从盘符开始,标明每一级的文件夹直到csv文件,header=None表示头部为空,sep=' '表示数据间使用空格作为分隔符,如果分隔符是逗号,只需换成 ‘,'即可。

    print df.head()

    print df.tail()

    #作为示例,输出CSV文件的前5行和最后5行,这是pandas默认的输出5行,可以根据需要自己设定输出几行的值

    图片中显示了我本地数据的前5行与最后5行,最前面一列没有标号的是行号,数据一共有13列,标号从0到12,一行显示不完全,在第9列以后换了行,并且用反斜杠“”标注了出来。

    2017年4月28日更新

    使用pandas直接读取本地的csv文件后,csv文件的列索引默认为从0开始的数字,重定义列索引的语句如下:

    import pandas as pd

    import numpy as np

    df=pd.read_csv('filename',header=None,sep=' ',names=["week",'month','date','time','year','name1','freq1','name2','freq2','name3','data1','name4','data2'])

    print df1234

    此时打印出的文件信息如下,列索引已经被重命名:

    总结

    以上所述是小编给大家介绍的Python Pandas批量读取csv文件到dataframe的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    展开全文
  • Python 交互性读取csv文件批量读取含有变量文件名的csv文件,使用GUI读取文件
  • pandas批量读取csv生成dataframe

    千次阅读 2020-11-04 20:52:37
    pathr = r'D:\XX\XX' #批量文件所在路径 file = sorted(glob.glob(os.path.join(pathr, "*.csv")), key=lambda name: int(name[87:-4])) #name[]去除路径首尾字符 print(file) dl = [] for f in file: dl.append(pd...
  • 算法工程师要面对的一大主要矛盾:不够用的服务器内存和巨大的训练集数据量之间的矛盾。 如果使用pandas处理CSV数据,会先...其实pandas 读取CSV文件的函数 read_csv() 中自带两个参数就可以解决: nrows= skiprows=
  • 速度优化——python的pandas批量读取CSV、Excel等文件 有一堆命名、格式、内容样式都一样的文件,逐个读取过于麻烦,那么可以选择批量读取(本质上是多线程的思想) import pandas as pd import numpy as np ...
  • pandas批量读入Excel、CSV类型文件

    千次阅读 2019-07-29 09:42:13
    pandas批量读入Excel、csv类型文件pandas批量读入Excel文件 pandas批量读入Excel文件 Step1:导入模块 import pandas as pd import os Step 2:指定存放文件的地址 dir_str=r'D:\000-mine\richang2019\促...
  • import pandas as pd import numpy as np import datetime import warnings warnings.filterwarnings('ignore') folder = pathlib.Path.cwd().parent.joinpath(r'C:\Users\郝琪英\Desktop\train_dataset\train')#...
  • 方法一:用pandas辅助 from pyspark import ...df=pd.read_csv(r'game-clicks.csv') sdf=sqlc.createDataFrame(df) 方法二:纯spark from pyspark import SparkContext from pyspark.sql import SQLContext sc = S
  • pandas 批量读取文件

    2021-09-16 16:25:37
    前提是批量读取的这些文件都是相同的格式,才能在最后使用pd.concat()函数拼接为一个总表 # 导入pandas模块 import pandas as pd # TODO 导入os模块 import os # TODO 将文件夹路径"/Users/azhen"赋值给变量path ...
  • pandas读取多个csv文件

    万次阅读 2019-12-15 19:27:23
    一个文件夹中有多个csv文件读取代码 import pandas as pd import numpy as np import os # ====================================================================================================== # # Data...
  • 读取csv文件—— 1、读取第一个csv文件 2、读取第二个csv文件 从上述读取的两个文件中,可以看到两个文件中有不同的内容,相同点是:二者都有这个列。因此,可以根据为合并条件进行合并。 合并完成! 注意:注意里...
  • pandas进行csv文件读取和写入

    千次阅读 2021-12-05 17:26:11
    pandas读写csv
  • pandas分批读取csv文件

    千次阅读 2019-05-07 09:32:22
    csv文件数据过大,超过内存负荷,这种情况下,pandas对csv提供一个批量读取的参数。 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html 代码如下: 对于非分布式环境下的...
  • 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...
  • 思路 ...pandas:用来读取和拼接所有CSV文件 代码 import pandas as pd import os file_dir = '../../Data/ModelResult' files = os.listdir(file_dir) df1 = pd.read_csv(os.path.join(file_dir,
  • 相信很多人的日常工作中,数据源除了来自数据库以外,其次就是外部文件,因此掌握读取文件的技能是相当必要的。...读取单个CSV文件以下例子中,设置工作目录(这一步可用也可不用)只是为了方便,在批量读取文件的...
  • 行之间无空行十分重要,如果有...使用python I/O写入和读取CSV文件使用PythonI/O写入csv文件以下是将"birthweight.dat"低出生体重的dat文件从作者源处下载下来,并且将其处理后保存到csv文件中的代码。imp...

空空如也

空空如也

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

pandas批量读取csv文件