Pandas是一个强大的数据分析库,主要用于处理和分析结构化数据。它提供了高性能的数据结构,使得数据清洗、操纵和分析变得更加高效和简单。
数据结构:
Series:类似于一维数组,可以保存任意数据类型。
DataFrame:类似于电子表格或SQL表,支持多维数据。
(图片来源于网络,仅供学习)
DataFrame构造方法:
DataFrame(data,index,columns,dtype,copy)
参数说明:
data:一组数据,例如:ndarray(多维数组),series(一维数组),lists(列表),dict(字典)等等
index:索引值或行标签,类似表头首行
columns:列标签,默认为RangeIndex(0,1,2,,,n)
dtype:数据类型
copy:拷贝数据,默认为false。
import numpy as np
import pandas as pd
import random
d = np.random.rand(3,4) #生成三行四列
print(d)
print(type(d))
data = pd.DataFrame(data=d,columns=['a','b','c','d'],dtype=float)##columns=list('abcd')
print(data)
print(type(data))
print(data['a'])##输出一列
print(data[list('ab')])##输出多列
print("#########________文件保存______________##########")
数据操作:
数据读取和写入:支持从CSV、Excel、SQL数据库等多种格式读取和写入数据。
数据选择与过滤:可以通过标签或位置选择数据。
数据清洗:支持缺失值处理、重复数据删除等功能。
创建DataFrame :
从CSV文件导入数据:使用pdread_csv()函数。
从Excel文件导入数据:使用pdread_excel()函数。
手动创建DataFrame:使用pdDataFrame()函数,可以传入字典、列表或NumPy数组等。
查看DataFrame:
查看头部和尾部数据:使用dfhead()和dftail()方法。
查看特定列的数据:使用df['column_name']或dfcolumn_name。
索引和选择数据:
使用loc[]根据标签索引数据。
使用iloc[]根据整数位置索引数据。
选择多列数据:df[['column1', 'column2']]。
选择多行数据:dfloc[row_index]。
修改DataFrame:
添加列:使用df['new_column'] = values。
删除列:使用del df['column_name']或dfdrop('column_name', axis=1)。
删除行:使用dfdrop(row_index)。
保存DataFrame:
保存为CSV文件:使用:DataFrame.to_csv('file_path',header=True, index=True, path_or_buf=None, sep=',', na_rep='', float_format=None, columns=None, index_label=None, mode='w', encoding=None, compression='infer', quoting=None, quotechar='"', line_terminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal='.', errors='strict')
保存为Excel文件:使用:DataFrame.to_excel('file_path',header=True, index=True, path_or_buf=None, sep=',', na_rep='', float_format=None, columns=None, index_label=None, mode='w', encoding=None, compression='infer', quoting=None, quotechar='"', line_terminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal='.', errors='strict')
参数名 | 参数类型 | 描述 |
file_path | 文件路径 | 默认文件路径 |
path_or_buf | 字符串或文件句柄 | 默认无文件路径或对象,如果没有提供,结果将返回为字符串。 |
sep | 默认字符‘,’ | 输出文件的字段分隔符。 |
na_rep | 字符串,默认为 ‘’ | 缺失数据填充。 |
float_format | 字符串,默认为 None | 小数点保留几位。 |
columns | 序列,数组 | 可选列写入,要写入的字段列表。 |
header | 字符串或布尔列表,默认为true | 写出列名。如果给定字符串列表,则作为列名的别名。 |
index | 布尔值,默认为Ture | 写入行名称(索引)。 |
index_label | 字符串或序列,或False,默认为None | 如果需要,可以使用索引列的列标签。如果没有给出,且标题和索引为True,则使用索引名称。如果数据文件使用多索引,则应该使用这个序列。如果值为False,不打印索引字段。在R中使用index_label=False 更容易导入索引. |
mode | 字符串,默认为"w" | Python写模式,默认“w”。 r : 只能读, 必须存在, 可在任意位置读取 w : 只能写, 可以不存在, 必会擦掉原有内容从头写 a : 只能写, 可以不存在, 必不能修改原有内容, 只能在结尾追加写, 文件指针无效 r+ : 可读可写, 必须存在, 可在任意位置读写, 读与写共用同一个指针 w+ : 可读可写, 可以不存在, 必会擦掉原有内容从头写 a+ : 可读可写, 可以不存在, 必不能修改原有内容, 只能在结尾追加写, 文件指针只对读有效 (写操作会将文件指针移动到文件尾) |
encoding | 字符串,可选 | 编码格式,表示在输出文件中使用的编码的字符串,Python2默认为“ASCII”,Python3默认为“UTF-8”。 |
compression | 字符串,可选项 | 表示在输出文件中使用的压缩的字符串,允许值为“gzip”、“bz2”、“xz”,仅在第一个参数是文件名时使用。 |
line_terminator | 字符串,默认为 ‘\n’ | 在输出文件中使用的换行字符或字符序列。默认为os.linesep,这取决于调用此方法的操作系统(例如,对于linux为“n”,对于Windows为“rn”) |
quoting | CSV模块的可选常量 | 默认值为to_csv.QUOTE_MINIMAL。如果设置了浮点格式,那么浮点将转换为字符串,因此csv.QUOTE_NONNUMERIC会将它们视为非数值的。 |
quotechar | 字符串(长度为1),默认“” | 用于引用字段的字符 |
doublequote | 布尔,默认为Ture | 引用路径在双引号内 |
escapechar | 字符串(长度为1),默认为None | 在适当的时候用来转义sep和quotechar的字符 |
chunksize | int或None | 一次写入行 |
date_format | 字符串,默认为None | 日期时间对象的格式字符串 |
decimal | 字符串,默认’。’ | 识别为十进制分隔符的字符。欧洲数据使用 ’,’ |
errors | 字符串。 | 指定如何处理编码和解码错误 |
保存数据例子:
import numpy as np
import pandas as pd
import random
d = np.random.rand(3,4) #生成三行四列
print(d)
print(type(d))
data = pd.DataFrame(data=d,columns=['a','b','c','d'],dtype=float)##columns=list('abcd')
print(data)
# print(type(data))
# print(data['a'])##输出一列
# print(data[list('ab')])##输出多列
print("#########________文件保存______________##########")
data.to_csv('data.csv',index=False,header=True)
print('文件保存成功')
数据分析:
数据聚合与分组:通过groupby进行数据分组和聚合计算。
统计分析:提供基本的统计函数(如均值、标准差等)。
时间序列:
强大的时间序列功能,支持日期范围生成、频率转换、移动窗口统计等。
数据可视化:
可以与Matplotlib、Seaborn等库结合,实现数据可视化。