目录
前言
1. 基于数字索引选择(iloc)
2. 基于标签名称选择(loc)
二、数据删减
1. 删除行/列(drop)
2. 数据去重(drop_duplicates)
3. 删除缺失值(dropna)
三、缺失值处理
1. 检测缺失值
2. 填充缺失值(fillna)
3. 插值填充(interpolate)
四、数据可视化
1. 直接绘图(DataFrame.plot)
五、总结
前言
Pandas读取数据后可对数据进行选择、删减、缺失值处理和可视化等一系列操作。
一、数据选择
1. 基于数字索引选择(iloc
)
-
用途:通过行/列的位置(整数索引)选择数据。
-
语法:
df.iloc[行选择, 列选择]
-
常见操作:
-
选择行:
df.iloc[:3] # 前3行(切片) df.iloc[[1, 3, 5]] # 选择第2、4、6行(列表形式)
-
选择列:
df.iloc[:, 1:4] # 第2-4列(切片) df.iloc[:, [0, 2]] # 第1、3列(列表形式)
-
组合选择:
df.iloc[1:3, 0:2] # 第2-3行,第1-2列
-
2. 基于标签名称选择(loc
)
-
用途:通过行/列的标签(名称)选择数据。
-
语法:
df.loc[行标签选择, 列标签选择]
-
常见操作:
-
选择行:
df.loc[0:2] # 标签0到2的行(包含末尾) df.loc[[0, 2, 4]] # 标签0、2、4的行
-
选择列:
df.loc[:, 'A':'C'] # 列A到C(包含末尾) df.loc[:, ['A', 'C']] # 列A和C
-
组合选择:
df.loc[[0, 2], 'Median Age':] # 标签0、2的行,列从'Median Age'到最后
-
二、数据删减
1. 删除行/列(drop
)
-
语法:
df.drop(labels=要删除的标签, axis=0/1, inplace=False)
-
示例:
df.drop(labels=['Median Age', 'Total Males'], axis=1) # 删除指定列 df.drop(index=[0, 2], axis=0) # 删除指定行
2. 数据去重(drop_duplicates
)
-
语法:
df.drop_duplicates(subset=None, keep='first', inplace=False)
-
示例:
df.drop_duplicates() # 删除所有重复行 df.drop_duplicates(subset=['A', 'B']) # 基于列A、B去重
3. 删除缺失值(dropna
)
-
语法:
df.dropna(axis=0/1, how='any'/'all', thresh=阈值)
-
示例:
df.dropna() # 删除所有含缺失值的行 df.dropna(axis=1, how='all') # 删除全为缺失值的列
三、缺失值处理
1. 检测缺失值
-
方法:
df.isna() # 返回布尔矩阵,标记缺失值位置 df.notna() # 返回布尔矩阵,标记非缺失值位置
2. 填充缺失值(fillna
)
-
常用方式:
-
标量填充:
df.fillna(0) # 所有缺失值填充为0
-
前向/后向填充:
df.fillna(method='pad') # 用前一个值填充(前向填充) df.fillna(method='bfill') # 用后一个值填充(后向填充)
-
统计值填充:
df.fillna(df.mean()) # 用列均值填充 df.fillna(df.median()) # 用列中位数填充
-
3. 插值填充(interpolate
)
-
用途:通过插值算法(如线性、多项式)填充缺失值。
-
语法:
df.interpolate(method='linear', limit=连续填充次数)
-
示例:
df = pd.DataFrame({'A': [1.1, 2.2, np.nan, 4.5, 5.7, 6.9]}) df.interpolate() # 线性插值填充
-
常用插值方法:
-
method='linear'
(默认,线性插值) -
method='quadratic'
(二次插值) -
method='pchip'
(适用于累计分布数据,需安装scipy
)
-
四、数据可视化
1. 直接绘图(DataFrame.plot
)
-
语法:
df.plot(kind=图形类型, x=列名, y=列名, title=标题)
-
常见图形类型:
df.plot(kind='line') # 折线图(默认) df.plot(kind='bar') # 柱状图 df.plot(kind='hist') # 直方图 df.plot(kind='scatter', x='A', y='B') # 散点图
-
示例:
df_interpolate.plot(title='插值后数据趋势') # 绘制折线图
五、总结
-
数据选择:
使用iloc
按位置索引选择,loc
按标签选择。 -
数据删减:
删除行/列用drop
,去重用drop_duplicates
,删缺失值用dropna
。 -
缺失值处理:
填充用fillna
或interpolate
,优先选择插值方法还原数据趋势。 -
数据可视化:
直接调用df.plot
快速预览数据分布。