pandas

import pandas as pd
pd.__version__  # 查看版本

Series

pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
'''
data:Series 的数据部分,可以是列表、数组、字典、标量值等。如果不提供此参数,则创建一个空的 Series
index:Series 的索引部分,用于对数据进行标记。可以是列表、数组、索引对象等。如果不提供此参数,则创建一个默认的整数索引
dtype:指定 Series 的数据类型。可以是 NumPy 的数据类型,例如 np.int64、np.float64 等。如果不提供此参数,则根据数据自动推断数据类型
name:Series 的名称,用于标识 Series 对象。如果提供了此参数,则创建的 Series 对象将具有指定的名称
copy:是否复制数据。默认为 False,表示不复制数据。如果设置为 True,则复制输入的数据
fastpath:是否启用快速路径。默认为 False。启用快速路径可能会在某些情况下提高性能
'''

# 使用列表创建 Series
s = pd.Series([1, 2, 3, 4])

# 使用字典创建 Series
s = pd.Series({'a': 1, 'b': 2, 'c': 3, 'd': 4})

# 使用 NumPy 数组创建 Series
s = pd.Series(np.array([1, 2, 3, 4]))
Series属性 说明
index Series的索引对象
values Series的值
dtype或dtypes Series的元素类型
shape Series的形状
ndim Series的维度
size Series的元素个数
name Series的名称
loc[] 显示索引,按标签索引或切片
iloc[] 隐式索引,按位置索引或切片
at[] 使用标签访问单个元素
iat[] 使用位置访问单个元素
Series方法 说明
head() 查看前n行数据,默认5行
tail() 查看后n行数据,默认5行
astype(dtype) 将 Series 转换为指定的类型
isin() 判断元素是否包含在参数集合中
isna() 判断是否为缺失值(如NaN或None)
isnull() 返回一个布尔 Series,表示每个元素是否为 NaN
notnull() 返回一个布尔 Series,表示每个元素是否不是 NaN
diff() 计算变化的值
pct_change() 当前值/前一个值 -1
map(func) 将指定函数应用于 Series 中的每个元素
apply(func) 将指定函数应用于 Series 中的每个元素,常用于自定义操作
sum() 求和,自动忽略缺失值
cumsum() 返回 Series 的累计求和
cumprod() 返回 Series 的累计乘积
mean() 平均值
min() 最小值
max() 最大值
idxmax() 获取最大值的索引
idxmin() 获取最小值的索引
var() 方差
std() 标准差
median() 中位数
mode() 众数(可返回多个)
quantile(q) 分位数,q取0~1之间
describe() 常见统计信息(count、mean、std、min、20%、50%、75%、max)
corr(other) 计算 Series 与另一个 Series 的相关性(皮尔逊相关系数)
cov(other) 计算 Series 与另一个 Series 的协方差
value_counts() 每个唯一值的出现次数
count() 非缺失值数量
nunique() 唯一值个数(去重)
unique() 获取去重后的值数组
drop_duplicates() 去除重复项
dropna() 删除 Series 中的缺失值(NaN)
fillna(value) 填充 Series 中的缺失值(NaN)
replace(to_replace, value) 替换 Series 中指定的值
sample() 随机抽样
sort_index() 按索引排序
sort_values() 按值排序
shift(periods) 将 Series 中的元素按指定的步数进行位移
rank() 返回 Series 中元素的排名
replace() 替换值
keys() 返回Series的索引对象
to_list() 将 Series 转换为 Python 列表
to_frame() 将 Series 转换为 DataFrame
# 索引和值的对应关系
for index, value in s.items():
    print(f"Index: {index}, Value: {value}")

# 使用 del 删除指定索引标签的元素。
del s['a']  # 删除索引标签 'a' 对应的元素

# 使用 drop 方法删除一个或多个索引标签,并返回一个新的 Series。
s_dropped = s.drop(['b'])  # 返回一个删除了索引标签 'b' 的新 Series
# 创建 Series
data = [1, 2, 3, 4, 5, 6]
index = ['a', 'b', 'c', 'd', 'e', 'f']
s = pd.Series(data, index=index)

# 使用 map 函数将每个元素加倍
s_doubled = s.map(lambda x: x * 2)
print("元素加倍后:", s_doubled)

DataFrame

可以从 列表,字典,numpy数组,series 创建

pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
'''
data:DataFrame 的数据部分,可以是字典、二维数组、Series、DataFrame 或其他可转换为 DataFrame 的对象。如果不提供此参数,则创建一个空的 DataFrame。
index:DataFrame 的行索引,用于标识每行数据。可以是列表、数组、索引对象等。如果不提供此参数,则创建一个默认的整数索引。
columns:DataFrame 的列索引,用于标识每列数据。可以是列表、数组、索引对象等。如果不提供此参数,则创建一个默认的整数索引。
dtype:指定 DataFrame 的数据类型。可以是 NumPy 的数据类型,例如 np.int64、np.float64 等。如果不提供此参数,则根据数据自动推断数据类型。
copy:是否复制数据。默认为 False,表示不复制数据。如果设置为 True,则复制输入的数据。
'''

data = [['Google', 10], ['Runoob', 12], ['Wiki', 13]]

# 创建DataFrame 使用列表创建
df = pd.DataFrame(data, columns=['Site', 'Age'])

# 使用astype方法设置每列的数据类型
df['Site'] = df['Site'].astype(str)
df['Age'] = df['Age'].astype(float)


# 使用字典创建
data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}
df = pd.DataFrame(data)
'''
修改 DataFrame
    修改列数据:直接对列进行赋值。
    添加新列:给新列赋值。
    添加新行:使用 loc、append()(被弃用) 或 concat 方法。
    concat() 方法用于合并两个或多个 DataFrame,当你想要添加一行到另一个 DataFrame 时,可以将新行作为一个新的 DataFrame,然后使用 concat():
 '''
# 使用concat添加新行
new_row = pd.DataFrame([[4, 7]], columns=['A', 'B'])  # 创建一个只包含新行的DataFrame
df = pd.concat([df, new_row], ignore_index=True)  # 将新行添加到原始DataFrame

'''
删除 DataFrame 元素
    删除列:使用 drop 方法
    删除行:同样使用 drop 方法
'''
df_dropped = df.drop('Column1', axis=1)
df_dropped = df.drop(0)  # 删除索引为 0 的行

'''
DataFrame 的合并与分割
    合并:使用 concat 或 merge 方法
    分割:使用 pivot、melt 或自定义函数
'''
# 纵向合并
pd.concat([df1, df2], ignore_index=True)

# 横向合并
pd.merge(df1, df2, on='Column1')

# 长格式转宽格式
df_pivot = df.pivot(index='Column1', columns='Column2', values='Column3')

# 宽格式转长格式
df_melt = df.melt(id_vars='Column1', value_vars=['Column2', 'Column3'])
DataFrame属性 说明
T 转置
index DataFrame的行索引
columns DataFrame的列标签
values DataFrame的值
dtypes DataFrame的元素类型
shape DataFrame的形状
ndim DataFrame的维度
size DataFrame的元素个数
loc[] 显示索引,按行列便签索引或切片
iloc[] 隐式索引,按行列位置索引或切片
at[] 使用行列标签访问单个元素
iat[] 使用行列位置访问单个元素
DataFrame方法 说明
transpose() 转置 DataFrame(行列交换)
set_index() 设置 DataFrame 的索引
reset_index() 重置 DataFrame 的索引
head() 查看前n行数据,默认5行
tail() 查看后n行数据,默认5行
isin() 判断元素是否包含在参数集合中
isna() 判断是否为缺失值(如NaN或None)
isnull() 判断缺失值,返回一个布尔值 DataFrame
notnull() 判断非缺失值,返回一个布尔值 DataFrame
sum() 求和,自动忽略缺失值
mean() 平均值
min() 最小值
max() 最大值
var() 方差
std() 标准差
median() 中位数
mode() 众数(可返回多个)
quantile(q) 分位数,q取0~1之间
describe() 常见统计信息(count、mean、std、min、25%、50%、75%、max)
info() 显示 DataFrame 的简要信息,包括列名、数据类型、非空值数量等
apply(func) 对 DataFrame 或 Series 应用一个函数
applymap(func) 对 DataFrame 的每个元素应用函数(仅对 DataFrame)
value_counts() 每一个唯一值的出现次数
count() 非缺失值数量
duplicated() 是否重复
drop_duplicates() 去除重复项
dropna() 删除含有缺失值(NaN)的行或列
fillna(value) 用指定的值填充缺失值
sample() 随机抽样
replace() 替换值
sort_index() 按索引排序
sort_values() 按值排序
groupby(by) 分组操作,用于按某一列分组进行汇总统计
pivot_table() 创建透视表
query() 使用 SQL 风格的语法查询 DataFrame
merge() 合并多个 DataFrame(类似 SQL 的 JOIN 操作)
concat() 按行或按列连接多个 DataFrame
nlargest() 返回某列最大的n条数据
nsmallest() 返回某列最小的n条数据

csv 文件

df = pd.read_csv('data.csv', sep=';', header=0, names=['A', 'B', 'C'], dtype={'A': int, 'B': float})
参数 说明 默认值
filepath_or_buffer CSV 文件的路径或文件对象(支持 URL、文件路径、文件对象等) 必需参数
sep 定义字段分隔符,默认是逗号(,),可以改为其他字符,如制表符(\t ‘,’
header 指定行号作为列标题,默认为 0(表示第一行),或者设置为 None 没有标题 0
names 自定义列名,传入列名列表 None
index_col 用作行索引的列的列号或列名 None
usecols 读取指定的列,可以是列的名称或列的索引 None
dtype 强制将列转换为指定的数据类型 None
skiprows 跳过文件开头的指定行数,或者传入一个行号的列表 Non
nrows 读取前 N 行数据 None
na_values 指定哪些值应视为缺失值(NaN) None
skipfooter 跳过文件结尾的指定行数 0
encoding 文件的编码格式(如 utf-8latin1 等) None
df.to_csv('output.csv', index=False, header=True, columns=['A', 'B'])
参数 说明 默认值
path_or_buffer CSV 文件的路径或文件对象(支持文件路径、文件对象) 必需参数
sep 定义字段分隔符,默认是逗号(,),可以改为其他字符,如制表符(\t ','
index 是否写入行索引,默认 True 表示写入索引 True
columns 指定写入的列,可以是列的名称列表 None
header 是否写入列名,默认 True 表示写入列名,设置为 False 表示不写列名 True
mode 写入文件的模式,默认是 w(写模式),可以设置为 a(追加模式) 'w'
encoding 文件的编码格式,如 utf-8latin1 None
line_terminator 定义行结束符,默认为 \n None
quoting 设置如何对文件中的数据进行引号处理(0-3,具体引用方式可查文档) None
quotechar 设置用于引用的字符,默认为双引号 " '"'
date_format 自定义日期格式,如果列包含日期数据,则可以使用此参数指定日期格式 None
doublequote 如果为 True,则在写入时会将包含引号的文本使用双引号括起来 True

json 文件

import json
df = pd.read_json()