pandas数据操作

一些以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
  • 可能常用参数:
    1. sep:指定作为分隔符的符号或正则表达式,默认是‘,’。当输入值大于1个字符或不是’\s+’时,会被解析为正则表达式。
    2. delimiter:和sep一样。
    3. header:整数,表头所在行。当names参数有设置时,默认是从列名自动判断;如果names参数没有设置,则默认是header=0。注:如果skip_blank_lines=True,会忽略注释行和空行,因此header=0表示数据的第一行而不是文件的第一行。
    4. names:用于指定列名的列表。如果设置了此参数,相当于指定了header = None。此列表中不允许有重复项。
    5. index_col:整数,用作行标签的列。
    6. usecols:要选择的列的子集,输入值是列名或列索引的列表。
    7. dtype:字典,指定整个数据集或某一列的数据类型。例如{‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}。
    8. true_values:列表,除了不分大小写的‘True’外,还有哪些值会认为是True。
    9. false_values:列表,除了不分大小写的‘False’外,还有哪些值会认为是False。
    10. skipinitialspace:跳过分隔符后的空格,默认是False。
    11. skiprows:文件开头要跳过的第几号(从 0 开始索引)或要跳过的多少行 (int)。如跳过第2和4行:skiprows = [2, 4];跳过前2行:skiprows=2。
    12. nrows:整数,指定要读取的文件行数。对于读取大文件很有用。
    13. na_values:除了NA和NaN外,还有哪些值会认为是NA。
    14. keep_default_na:解析数据时,识别的NA符号是否包含默认NaN值(NA和NaN)。
    15. na_filter:是否需要检测缺失值标记(空字符串和na_values指定的值),默认True。在没有任何NA值的数据中,指定na_filter=False可以提高读取大文件的性能。
    16. 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
  • 可能常用参数:
    1. sheet_name:字符串,整数,列表或None,默认为0。指定要读取的工作表。设置为None时,读取所有工作表。
    2. header:整数或整数列表,默认为0。用于指定表头所在行。如果没有标题,请使用None。
    3. names:列表,默认为None。指定列名的列表。如果文件不包含标题行,则应显式传递 header=None。
    4. index_col:字符串,整数,整数列表,默认为None。用于指定行名所在列。设置为None代表没有行名。
    5. usecols:要选择的列的子集,输入值是列名或列索引的列表。
    6. dtype:字典,指定整个数据集或某一列的数据类型。例如{‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}。
    7. engine:文件解析引擎。“xlrd”支持.xls文件,在1.2.0版本后xlrd只支持.xls文件。“openpyxl”支持更新的Excel文件。“odf”支持OpenDocument文件 .odf, .ods, .odt。“pyxlsb”支持Binary Excel文件。
    8. true_values:列表,除了不分大小写的‘True’外,还有哪些值会认为是True。
    9. false_values:列表,除了不分大小写的‘False’外,还有哪些值会认为是False。
    10. skiprows:文件开头要跳过的第几号(从 0 开始索引)或要跳过的多少行 (int)。如跳过第2和4行:skiprows = [2, 4];跳过前2行:skiprows=2。
    11. nrows:整数,指定要读取的文件行数。对于读取大文件很有用。
    12. na_values:除了NA和NaN外,还有哪些值会认为是NA。
    13. keep_default_na:解析数据时,识别的NA符号是否包含默认NaN值(NA和NaN)。
    14. 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')

参考资料

  1. pandas User Guide
  2. Introduction to Exploratory Data Analysis