pandas 对数据的读取和存储(学习笔记)

在学习数据分析的过程中,发现一般流程是将存储的数据文件通过pandas工具包写入成dataframes格式后再进行一系列处理,所以就简单总结了下通过pandas读取csv,MySQL两种文件格式的数据,以及再将dataframe格式的数据分别储存到csv/json/MySQL中。
1、pandas读取csv文件
采用pd.read_csv()进行数据读取,详细参数文档可以参照
http://pandas.pydata.org/pandasdocs/stable/generated/pandas.read_csv.html
这里写图片描述
这里简要说一下我用过的几个参数:
第一个参数filename——对应文件名;
header——表头,默认不为空(以第一行作表头,),取None,表明全数据,无表头;
prefix——没有列标题时,添加前缀“X”,X0、X1···;
sep——str, default ‘,’ (指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’);
usecols——array-like, default None (返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗);
names—— array-like, default None (用于结果的列名列表,如果数据文件中没有列标题行,就需要执行header=None。默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True)
nrows : int, default None (需要读取的行数(从文件头开始算起))。

例:读取文件中的第2,3列,并将其列名分别名为’date’, ‘power’,只读取前10行数据
这里写图片描述
输出结果
这里写图片描述

2、pandas读取mysql数据
读取mysql中指定表的数据首先要利用pymysql建立与数据库连接,而后采用pd.read_sql()将指定表中的数读成dataframe格式。
这里写图片描述

  • conn是建立与MySQL连接,这里要指定你要指定database为你要读取表所在数据库,charset是指定编码。
  • 读取MySQL要借助SQL语句中的select语句。这里可以指定你要读取的列及表名。
  • pd.read_sql()中第一个参数即为SQL语句,第二个参数为建立的数据库连接。

数据库数据与输出结果:
数据库原始数据 pandas输出结果

3、将dataframe数据写入csv文件
直接采用df.to_csv()就可实现
这里写图片描述
第一个参数指定要写入文件名及所在路径,我这里直接存在了代码所在的文件夹下;
sep指定csv文件中字段间的分隔符,header表明是否需要头部。
其他参数参照:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html

4、将dataframe数据写入json文件
直接采用df.to_json()将dataframe写入到json文件
这里写图片描述
它和csv文件的存储方式不一样,
这里写图片描述

5、将dataframe数据写入到MySQL中
这里要借助sqlalchemy和df.to_sql()
这里写图片描述

  • 首先要借助sqlalchemy.create_engine建连接。其中参数’mysql+pymysql://root:root@localhost:3306/njust?charset=utf8t’。这里要注意要使用“mysql+pymysql”,后面依次为数据库账户、密码、服务器所在地址、端口、数据库名称。最后是设定编码。
  • df.to_sql()中参数name=table_name;con=所建立的连接;if_exists=’append’是指如果表table_name存在,则将数据添加到这个表的后面。index : boolean, default True,默认将索引作为一列。
    生成数据:
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40041218/article/details/79246883
今日推荐