Pandas 库基于 NumPy 构建,为 Python 编程语言提供易于使用的数据结构和数据分析工具。
使用以下约定导入 Pandas
import pandas as pd能够保存任何数据类型的一维标记数组
s = pd.Series([1, 3, 5, 7], index=['天', '地', '玄', '黄']) # 左侧一列为索引 s天 1 地 3 玄 5 黄 7 dtype: int64
不同类型列的二维标记数据结构,类似 Excel 表格
上面一行为列名
左侧一列为索引
-姓名民族姓别年龄1贾小武汉男32贾小久汉男13张小鸭汉女- data = {'姓': ['贾', '贾', '张'], '名': ['小武', '小久', '小鸭́'], '民族': ['汉', '汉', '汉'], '年龄': [3, 1, None]} data{‘姓’: [‘贾’, ‘贾’, ‘张’], ‘名’: [‘小武’, ‘小久’, ‘小鸭́’], ‘民族’: [‘汉’, ‘汉’, ‘汉’], ‘年龄’: [3, 1, None]}
df = pd.DataFrame(data, columns=['姓', '名', '年龄']) df -姓名民族姓别年龄1贾小武汉男32贾小久汉男13张小鸭汉女-read_sql() 是 read_sql_table() 和 read_sql_query() 的便捷包装器
pd.to_sql('myDf', engine)1
# 获取 DataFrame 的子集 df[1:]按行和列选择单个值
df.iloc[[0], [1]] df.iat[0, 1]‘小武’
按行和列标签选择单个值
df.loc[0, '姓']‘贾’
df.at[0, '姓']‘贾’
天 1 dtype: int64
s[(s < -1) | (s > 2)]地 3 玄 5 黄 7 dtype: int64
df[df['年龄']>1]将序列 s 的索引 ‘宇’ 设置为 9
s['宇'] = 9 s天 1 地 3 玄 5 黄 7 宇 9 dtype: int64
从行中删除值(axis = 0)
s.drop(['天', '地'])玄 5 黄 7 宇 9 dtype: int64
从列中删除值(axis = 1)
df.drop('姓', axis=1)按轴标签排序
df.sort_index()按轴的值排序
df.sort_values(by='年龄')从小到大排序的下标
df.rank()(行,列)
df.shape(3, 2)
描述索引
df.indexIndex([‘cobra’, ‘viper’, ‘sidewinder’], dtype=‘object’)
描述 DataFrame 列信息
df.columnsIndex([‘max_speed’, ‘shield’], dtype=‘object’)
DataFrame 信息
df.info()非 NA 值的数量
df.count()max_speed 3 shield 3 dtype: int64
总和
df.sum()max_speed 12 shield 15 dtype: int64
累积值
df.cumsum()最小值
df.min()max_speed 1 shield 2 dtype: int64
最大值
df.max()max_speed 7 shield 8 dtype: int64
最小索引值
df.idxmin()max_speed cobra shield cobra dtype: object
最大索引值
df.idxmax()max_speed sidewinder shield sidewinder dtype: object
摘要统计
df.describe() 均值 ```python df.mean()max_speed 4.0 shield 5.0 dtype: float64
中位数
df.median()max_speed 4.0 shield 5.0 dtype: float64
应用函数
df.apply(f)按元素应用函数
df.applymap(f)值 NA 在不重叠的索引中引入
s3 = pd.Series([7, -2, 3], index=['玄', '黄', '宇']) s + s3地 NaN 天 NaN 宇 12.0 玄 12.0 黄 5.0 dtype: float64
借助填充方法自行完成内部数据对齐
s.add(s3, fill_value=0)地 3.0 天 1.0 宇 12.0 玄 12.0 黄 5.0 dtype: float64
s.sub(s3, fill_value=2)地 1.0 天 -1.0 宇 6.0 玄 -2.0 黄 9.0 dtype: float64
s.div(s3, fill_value=4)地 0.750000 天 0.250000 宇 3.000000 玄 0.714286 黄 -3.500000 dtype: float64
s.mul(s3, fill_value=3)地 9.0 天 3.0 宇 27.0 玄 35.0 黄 -14.0 dtype: float64
ipynb 请查看:https://github.com/iOSDevLog/AIDevLog/blob/master/Python 基础/PandasBasic.ipynb
