青岛vps网站,哪里有做旅游包车的网站,网推公司干什么的,做t恤的网站CSDN 课程推荐#xff1a;《迈向数据科学家#xff1a;带你玩转Python数据分析》#xff0c;讲师齐伟#xff0c;苏州研途教育科技有限公司CTO#xff0c;苏州大学应用统计专业硕士生指导委员会委员#xff1b;已出版《跟老齐学Python#xff1a;轻松入门》《跟老齐学Py…
CSDN 课程推荐《迈向数据科学家带你玩转Python数据分析》讲师齐伟苏州研途教育科技有限公司CTO苏州大学应用统计专业硕士生指导委员会委员已出版《跟老齐学Python轻松入门》《跟老齐学PythonDjango实战》、《跟老齐学Python数据分析》和《Python大学实用教程》畅销图书。Pandas 系列文章
Python 数据分析三剑客之 Pandas一认识 Pandas 及其 Series、DataFrame 对象Python 数据分析三剑客之 Pandas二Index 索引对象以及各种索引操作Python 数据分析三剑客之 Pandas三算术运算与缺失值的处理Python 数据分析三剑客之 Pandas四函数应用、映射、排序和层级索引Python 数据分析三剑客之 Pandas五统计计算与统计描述Python 数据分析三剑客之 Pandas六GroupBy 数据分裂、应用与合并Python 数据分析三剑客之 Pandas七合并数据集Python 数据分析三剑客之 Pandas八数据重塑、重复数据处理与数据替换Python 数据分析三剑客之 Pandas九时间序列Python 数据分析三剑客之 Pandas十数据读写 另有 NumPy、Matplotlib 系列文章已更新完毕欢迎关注
NumPy 系列文章https://itrhx.blog.csdn.net/category_9780393.htmlMatplotlib 系列文章https://itrhx.blog.csdn.net/category_9780418.html 推荐学习资料与网站博主参与部分文档翻译
NumPy 官方中文网https://www.numpy.org.cn/Pandas 官方中文网https://www.pypandas.cn/Matplotlib 官方中文网https://www.matplotlib.org.cn/NumPy、Matplotlib、Pandas 速查表https://github.com/TRHX/Python-quick-reference-table 文章目录【01x00】读取数据【01x01】简单示例【01x02】header / names 定制列标签【01x03】index_col 指定列为行索引【01x04】sep 指定分隔符【01x05】skiprows 忽略行【01x06】na_values 设置缺失值【01x07】nrows / chunksize 行与块【02x00】写入数据【02x01】简单示例【02x02】sep 指定分隔符【02x03】na_rep 替换缺失值【02x04】index / header 行与列标签【02x05】columns 指定列这里是一段防爬虫文本请读者忽略。
本文原创首发于 CSDN作者 TRHX。
博客首页https://itrhx.blog.csdn.net/
本文链接https://itrhx.blog.csdn.net/article/details/106963135
未经授权禁止转载恶意转载后果自负尊重原创远离剽窃【01x00】读取数据
Pandas 提供了一些用于将表格型数据读取为 DataFrame 对象的函数。常见方法如下
Pandas 官方对 IO 工具的介绍https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html
函数描述read_csv从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号read_table从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符\tread_fwf读取定宽列格式数据没有分隔符read_clipboard读取剪贴板中的数据可以看做 read_table 的剪贴板版本。在将网页转换为表格时很有用read_excel从 Excel XLS 或 XLSX file 读取表格数据read_hdf读取 pandas写的 HDF5 文件read_html读取 HTML 文档中的所有表格read_json读取 JSON JavaScript Object Notation字符串中的数据read_msgpack读取二进制格式编码的 pandas 数据Pandas v1.0.0 中已删除对 msgpack 的支持建议使用 pyarrowread_pickle读取 Python pickle 格式中存储的任意对象read_sas读取存储于 SAS 系统自定义存储格式的 SAS 数据集read_sql使用 SQLAlchemy读取 SQL 查询结果为 pandas 的 DataFrameread_stata读取 Stata 文件格式的数据集read_feather读取 Feather 二进制格式文件
以下以 read_csv 和 read_table 为例它们的参数多达 50 多个具体可参见官方文档
read_csvhttps://pandas.pydata.org/docs/reference/api/pandas.read_csv.html
read_tablehttps://pandas.pydata.org/docs/reference/api/pandas.read_table.html
常用参数
参数描述path表示文件系统位置、URL、文件型对象的字符串sep / delimiter用于对行中各字段进行拆分的字符序列或正则表达式header用作列名的行号默认为 0第一行如果没有 header 行就应该设置为 Noneindex_col用作行索引的列编号或列名。可以是单个名称、数字或由多个名称、数字组成的列表层次化索引names用于结果的列名列表结合 headerNoneskiprows需要忽略的行数从文件开始处算起或需要跳过的行号列表从0开始na_values指定一组值将该组值设置为 NaN缺失值comment用于将注释信息从行尾拆分出去的字符一个或多个parse_dates尝试将数据解析为日期默认为 False。如果为 True则尝试解析所有列。此外还可以指定需要解析的一组列号或列名。如果列表的元素为列表或元组就会将多个列组合到一起再进行日期解析工作例如日期、时间分别位于两个列中keep_date_col如果连接多列解析日期则保持参与连接的列。默认为 Falseconverters由列号 / 列名跟函数之间的映射关系组成的字典。例如{foo: f} 会对 foo 列的所有值应用函数 fdayfirst当解析有歧义的日期时将其看做国际格式例如7/6/2012 — June 7,2012默认为 Fasedate_parser用于解析日期的函数nrows需要读取的行数从文件开始处算起iterator返回一个 TextParser 以便逐块读取文件chunksize文件块的大小用于迭代skip_footer需要忽略的行数从文件末尾处算起verbose打印各种解析器输出信息比如“非数值列中缺失值的数量”等encoding用于 unicode 的文本编码格式。例如“utf-8” 表示用 UTF-8 编码的文本squeeze如果数据经解析后仅含一列则返回 Seriesthousands千分位分隔符如 , 或 .
【01x01】简单示例
首先创建一个 test1.csv 文件 使用 read_csv 方法将其读出为一个 DataFrame 对象 import pandas as pdobj pd.read_csv(rC:\Users\TanRe\Desktop\test1.csv)obja b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 pythontype(obj)
class pandas.core.frame.DataFrame前面的 csv 文件是以逗号分隔的可以使用 read_table 方法并指定分隔符来读取 import pandas as pdobj pd.read_table(rC:\Users\TanRe\Desktop\test1.csv, sep,)obja b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 python【01x02】header / names 定制列标签
以上示例中第一行为列标签如果没有单独定义列标签使用 read_csv 方法也会默认将第一行当作列标签 import pandas as pdobj pd.read_csv(rC:\Users\TanRe\Desktop\test2.csv)obj1 2 3 4 hello
0 5 6 7 8 world
1 9 10 11 12 python避免以上情况可以设置 headerNonePandas 会为其自动分配列标签 import pandas as pdpd.read_csv(rC:\Users\TanRe\Desktop\test2.csv, headerNone)0 1 2 3 4
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 python也可以使用 names 参数自定义列标签传递的是一个列表 import pandas as pdpd.read_csv(rC:\Users\TanRe\Desktop\test2.csv, names[a, b, c, d, message])a b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 python【01x03】index_col 指定列为行索引
index_col 参数可以指定某一列作为 DataFrame 的行索引传递的参数是列名称在以下示例中会将列名为 message 的列作为 DataFrame 的行索引 pd.read_csv(rC:\Users\TanRe\Desktop\test2.csv, names[a, b, c, d, message], index_colmessage)a b c d
message
hello 1 2 3 4
world 5 6 7 8
python 9 10 11 12如果需要构造多层索引的 DataFrame 对象则只需传入由列编号或列名组成的列表即可 import pandas as pdpd.read_csv(rC:\Users\TanRe\Desktop\test3.csv, index_col[key1, key2])value1 value2
key1 key2
one a 1 2b 3 4c 5 6d 7 8
two a 9 10b 11 12c 13 14d 15 16【01x04】sep 指定分隔符
在 read_table 中sep 参数用于接收分隔符如果遇到不是用固定的分隔符去分隔字段的也可以传递一个正则表达式作为 read_table 的分隔符如下面的 txt 文件数据之间是由不同的空白字符间隔开的 import pandas as pdpd.read_table(rC:\Users\TanRe\Desktop\test1.txt, sep\s)A B C
aaa -0.264438 -1.026059 -0.619500
bbb 0.927272 0.302904 -0.032399
ccc -0.264273 -0.386314 -0.217601
ddd -0.871858 -0.348382 1.100491【01x05】skiprows 忽略行
skiprows 参数可用于设置需要忽略的行数或需要跳过的行号列表在下面的示例中读取文件时选择跳过第1、3、4行索引值分别为0、2、3 import pandas as pdpd.read_csv(rC:\Users\TanRe\Desktop\test4.csv, skiprows[0, 2, 3])a b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 python【01x06】na_values 设置缺失值
当文件中出现了空字符串或者 NA 值Pandas 会将其标记成 NaN缺失值同样也可以使用 isnull 方法来判断结果值是否为缺失值 import pandas as pdobj pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv)objsomething a b c d message
0 one 1 2 3.0 4 NaN
1 two 5 6 NaN 8 world
2 three 9 10 11.0 12 pythonpd.isnull(obj)something a b c d message
0 False False False False False True
1 False False False True False False
2 False False False False False Falsena_values 方法可以传递一组值将这组值设置为缺失值如果传递的为字典对象则字典的各值将被设置为 NaN import pandas as pdobj1 pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv)obj1something a b c d message
0 one 1 2 3.0 4 NaN
1 two 5 6 NaN 8 world
2 three 9 10 11.0 12 pythonobj2 pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv, na_values[1, 12])obj2something a b c d message
0 one NaN 2 3.0 4.0 NaN
1 two 5.0 6 NaN 8.0 world
2 three 9.0 10 11.0 NaN pythonsentinels {message: [python, world], something: [two]}obj3 pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv, na_valuessentinels)obj3something a b c d message
0 one 1 2 3.0 4 NaN
1 NaN 5 6 NaN 8 NaN
2 three 9 10 11.0 12 NaN【01x07】nrows / chunksize 行与块
以下 test6.csv 文件中包含 50 行数据 可以设置 pd.options.display.max_rows 来紧凑地显示指定行数的数据 import pandas as pdpd.options.display.max_rows 10pd.read_csv(rC:\Users\TanRe\Desktop\test6.csv)one two three four key
0 0.467976 -0.038649 -0.295344 -1.824726 L
1 -0.358893 1.404453 0.704965 -0.200638 B
2 -0.501840 0.659254 -0.421691 -0.057688 G
3 0.204886 1.074134 1.388361 -0.982404 R
4 0.354628 -0.133116 0.283763 -0.837063 Q
.. ... ... ... ... ..
45 2.311896 -0.417070 -1.409599 -0.515821 L
46 -0.479893 -0.633419 0.745152 -0.646038 E
47 0.523331 0.787112 0.486066 1.093156 K
48 -0.362559 0.598894 -1.843201 0.887292 G
49 -0.096376 -1.012999 -0.657431 -0.573315 0[50 rows x 5 columns]通过 nrows 参数可以读取指定行数 import pandas as pdpd.read_csv(rC:\Users\TanRe\Desktop\test6.csv, nrows5)one two three four key
0 0.467976 -0.038649 -0.295344 -1.824726 L
1 -0.358893 1.404453 0.704965 -0.200638 B
2 -0.501840 0.659254 -0.421691 -0.057688 G
3 0.204886 1.074134 1.388361 -0.982404 R
4 0.354628 -0.133116 0.283763 -0.837063 Q要逐块读取文件可以指定 chunksize行数 import pandas as pdchunker pd.read_csv(rC:\Users\TanRe\Desktop\test6.csv, chunksize50)chunker
pandas.io.parsers.TextFileReader object at 0x07A20D60返回的 TextParser 对象可以根据 chunksize 对文件进行逐块迭代。以下示例中对 test6.csv 文件数据进行迭代处理将值计数聚合到 “key” 列中 import pandas as pdchunker pd.read_csv(rC:\Users\TanRe\Desktop\test6.csv, chunksize50)tot pd.Series([], dtypefloat64)for piece in chunker:tot tot.add(piece[key].value_counts(), fill_value0) tot tot.sort_values(ascendingFalse)tot[:10]
G 6.0
E 5.0
B 5.0
L 5.0
0 5.0
K 4.0
A 4.0
R 4.0
C 2.0
Q 2.0
dtype: float64这里是一段防爬虫文本请读者忽略。
本文原创首发于 CSDN作者 TRHX。
博客首页https://itrhx.blog.csdn.net/
本文链接https://itrhx.blog.csdn.net/article/details/106963135
未经授权禁止转载恶意转载后果自负尊重原创远离剽窃【02x00】写入数据
Pandas 提供了一些用于将表格型数据读取为 DataFrame 对象的函数。常见方法如下
函数描述to_csv将对象写入逗号分隔值csv文件to_clipboard将对象复制到系统剪贴板to_excel将对象写入 Excel 工作表to_hdf使用 HDFStore 将包含的数据写入 HDF5 文件to_html将 DataFrame 呈现为 HTML 表格to_json将对象转换为 JSON JavaScript Object Notation字符串to_msgpack将对象写入二进制格式编码的文件Pandas v1.0.0 中已删除对 msgpack 的支持建议使用 pyarrowto_picklePickle序列化对象到文件to_sql将存储在 DataFrame 中的数据写入 SQL 数据库to_stata将 DataFrame 对象导出为 Stata 格式to_feather将 DataFrames 写入 Feather 二进制格式文件
以下以 to_csv 为例它的参数同样多达 50 多个具体可参见官方文档 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html https://pandas.pydata.org/docs/reference/api/pandas.Series.to_csv.html
【02x01】简单示例
以之前的 test5.csv 文件为例先读出数据再将数据写入另外的文件 import pandas as pddata pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv)datasomething a b c d message
0 one 1 2 3.0 4 NaN
1 two 5 6 NaN 8 world
2 three 9 10 11.0 12 pythondata.to_csv(rC:\Users\TanRe\Desktop\out1.csv)【02x02】sep 指定分隔符
sep 参数可用于其他分隔符 import pandas as pddata pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv)datasomething a b c d message
0 one 1 2 3.0 4 NaN
1 two 5 6 NaN 8 world
2 three 9 10 11.0 12 pythondata.to_csv(rC:\Users\TanRe\Desktop\out2.csv, sep|)【02x03】na_rep 替换缺失值
na_rep 参数可将缺失值NaN替换成其他字符串 import pandas as pddata pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv)datasomething a b c d message
0 one 1 2 3.0 4 NaN
1 two 5 6 NaN 8 world
2 three 9 10 11.0 12 pythondata.to_csv(rC:\Users\TanRe\Desktop\out3.csv, na_repX)【02x04】index / header 行与列标签
设置 indexFalse, headerFalse可以禁用行标签与列标签 import pandas as pddata pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv)datasomething a b c d message
0 one 1 2 3.0 4 NaN
1 two 5 6 NaN 8 world
2 three 9 10 11.0 12 pythondata.to_csv(rC:\Users\TanRe\Desktop\out4.csv, indexFalse, headerFalse)还可以传入列表来重新设置列标签 import pandas as pddata pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv)datasomething a b c d message
0 one 1 2 3.0 4 NaN
1 two 5 6 NaN 8 world
2 three 9 10 11.0 12 pythondata.to_csv(rC:\Users\TanRe\Desktop\out5.csv, header[a, b, c, d, e, f])【02x05】columns 指定列
可以通过设置 columns 参数只写入部分列并按照指定顺序排序 import pandas as pddata pd.read_csv(rC:\Users\TanRe\Desktop\test5.csv)datasomething a b c d message
0 one 1 2 3.0 4 NaN
1 two 5 6 NaN 8 world
2 three 9 10 11.0 12 pythondata.to_csv(rC:\Users\TanRe\Desktop\out6.csv, columns[c, b, a])这里是一段防爬虫文本请读者忽略。
本文原创首发于 CSDN作者 TRHX。
博客首页https://itrhx.blog.csdn.net/
本文链接https://itrhx.blog.csdn.net/article/details/106963135
未经授权禁止转载恶意转载后果自负尊重原创远离剽窃