- 是一个二维容器;
- pandas中会自动根据数据类型更改dataframe的dtype类型;
- 举例:
pd.DataFrame(np.arange(12).reshape(3, 4))
输出结构为含有行索引和列索引的对象;- 行索引:表示不同行,叫index,0轴,axis=0;
- 列索引:表示不同列,叫columns,1轴,axis=1;
- 可对行索引列索引进行赋值:
pd.DataFrame(np.arange(12).reshape(3, 4), index=list("abc"), columns=list("wxyz"))
- df.shape;列数、行数
- df.dtypes;展示列数据类型
- df.ndim;数据维度
- df.index;行索引
- df.columns;列索引
- df.values;对象值,二维ndarray数组
- df.head(n);显示头部n行,默认五行
- df.tail(n);显示末尾n行,默认五行
- df.info();相关信息概览,行数、列数、列索引、列非空值个数、行类型、列类型、内存占用;
- df.describe();快速综合统计结果:计数、均值、标准差、最大值、四分位数、最小值;
- 排序
df.sort_value(by="排序依据")
默认按升序排列; - 取行列操作:
df.[:20]["names"] # 表示前二十行的names列
- 其他经过优化的选择方式:
- 通过标签索引行数据;
df.loc
- 举例:
df.loc["A", "W"] # A行W列 df.loc["A", ["W", "Z"]] # A行的W、Z列 df.loc[["A", "C"], ["W", "Z"]] # A、C行的W、Z列 df.loc["A":, ["W", "Z"]] # A及以后的所有行的W、Z列 df.loc["A":"C", ["W", "Z"]] # A~C行的W、Z列
- 可通过赋值对数据进行更改;
- 举例:
- 通过位置获取行数据;
df.iloc
- 索引值从0开始,按[start:stop, start:stop]的格式进行取用;
- 可通过赋值对数据进行更改;
- 布尔索引:
- 即通过判断条件进行索引:
df[(df["names"].str.len()>4)&(df["salaries"]>4000)] # 表示姓名长度大于四个字符且薪资大于四千的
- 通过标签索引行数据;
- 其他经过优化的选择方式:
- 首先判断是否为NaN:
- pd.isnull(df)
- pd.notnull(df);
- 处理方式:
- 删除NaN所在行:dropna(axis=0, how=“any”, inplace=False)
- how参数
- any表示只要含有nan就删除;
- all表示全为nan才删除;
- inplace参数
- True表示原地替换
- False不修改原数据
- how参数
- 填充数据:
- df.fillna(df.mean())
- df.fillna(df.median())
- df.fillna(0)
- 删除NaN所在行:dropna(axis=0, how=“any”, inplace=False)
- 计算平均值时考虑数值为0的数据是否要参与运算,如果不参与,则转换为nan数据;df[df==0]=np.nan



