一些以panda为主的数据分析操作
运行环境
- Python 3.8.8rc1
- numpy 1.24.4
- pandas 2.0.3
- matplotlib 3.7.2
- seaborn 0.12.2
导入Python包
1 2 3 4 5 6 7 8
| import pandas as pd import numpy as np import matplotlib.pylab as plt import seaborn as sns # 设置matplotlib样式为ggplot plt.style.use('ggplot') # 使数据列数超过200时,才用省略号跳过显示部分列 pd.set_option('max_columns', 200)
|
数据读入
csv或tsv格式的输入文件
简单示例
1 2 3 4 5
| # csv格式 df = pd.read_csv('xxx/xxx.csv')
# tsv格式 df = pd.read_csv('xxx/xxx.tsv', sep='\t')
|
参数说明
- 完整参数列表:pandas.read_csv
- 可能常用参数:
- sep:指定作为分隔符的符号或正则表达式,默认是‘,’。当输入值大于1个字符或不是’\s+’时,会被解析为正则表达式。
- delimiter:和sep一样。
- header:整数,表头所在行。当names参数有设置时,默认是从列名自动判断;如果names参数没有设置,则默认是header=0。注:如果skip_blank_lines=True,会忽略注释行和空行,因此header=0表示数据的第一行而不是文件的第一行。
- names:用于指定列名的列表。如果设置了此参数,相当于指定了header = None。此列表中不允许有重复项。
- index_col:整数,用作行标签的列。
- usecols:要选择的列的子集,输入值是列名或列索引的列表。
- dtype:字典,指定整个数据集或某一列的数据类型。例如{‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}。
- true_values:列表,除了不分大小写的‘True’外,还有哪些值会认为是True。
- false_values:列表,除了不分大小写的‘False’外,还有哪些值会认为是False。
- skipinitialspace:跳过分隔符后的空格,默认是False。
- skiprows:文件开头要跳过的第几号(从 0 开始索引)或要跳过的多少行 (int)。如跳过第2和4行:skiprows = [2, 4];跳过前2行:skiprows=2。
- nrows:整数,指定要读取的文件行数。对于读取大文件很有用。
- na_values:除了NA和NaN外,还有哪些值会认为是NA。
- keep_default_na:解析数据时,识别的NA符号是否包含默认NaN值(NA和NaN)。
- na_filter:是否需要检测缺失值标记(空字符串和na_values指定的值),默认True。在没有任何NA值的数据中,指定na_filter=False可以提高读取大文件的性能。
- skip_blank_lines:如果为True,则跳过空白行而不是解析为NaN值。
xls或xlsx格式的输入文件
简单示例
1 2 3 4 5
| # xls格式 df = pd.read_excel('xxx/xxx.xls', sheet_name='xxx')
# xlsx格式 df = pd.read_excel('xxx/xxx.xlsx', sheet_name='xxx')
|
参数说明
- 完整参数列表:pandas.read_excel
- 支持文件格式: xls xlsx xlsm xlsb odf ods odt
- 可能常用参数:
- sheet_name:字符串,整数,列表或None,默认为0。指定要读取的工作表。设置为None时,读取所有工作表。
- header:整数或整数列表,默认为0。用于指定表头所在行。如果没有标题,请使用None。
- names:列表,默认为None。指定列名的列表。如果文件不包含标题行,则应显式传递 header=None。
- index_col:字符串,整数,整数列表,默认为None。用于指定行名所在列。设置为None代表没有行名。
- usecols:要选择的列的子集,输入值是列名或列索引的列表。
- dtype:字典,指定整个数据集或某一列的数据类型。例如{‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}。
- engine:文件解析引擎。“xlrd”支持.xls文件,在1.2.0版本后xlrd只支持.xls文件。“openpyxl”支持更新的Excel文件。“odf”支持OpenDocument文件 .odf, .ods, .odt。“pyxlsb”支持Binary Excel文件。
- true_values:列表,除了不分大小写的‘True’外,还有哪些值会认为是True。
- false_values:列表,除了不分大小写的‘False’外,还有哪些值会认为是False。
- skiprows:文件开头要跳过的第几号(从 0 开始索引)或要跳过的多少行 (int)。如跳过第2和4行:skiprows = [2, 4];跳过前2行:skiprows=2。
- nrows:整数,指定要读取的文件行数。对于读取大文件很有用。
- na_values:除了NA和NaN外,还有哪些值会认为是NA。
- keep_default_na:解析数据时,识别的NA符号是否包含默认NaN值(NA和NaN)。
- na_filter:是否需要检测缺失值标记(空字符串和na_values指定的值),默认True。在没有任何NA值的数据中,指定na_filter=False可以提高读取大文件的性能。
数据观察
数据预处理
特征观察
特征之间关系
结果输出
完整参数列表:
pandas.DataFrame.to_csv
pandas.DataFrame.to_excel
1 2 3 4 5
| # csv格式 df.to_csv('xxx/output.csv', index=False)
# xlsx格式 df.to_excel("xxx/output.xlsx", sheet_name='Sheet_1')
|
参考资料
- pandas User Guide
- Introduction to Exploratory Data Analysis