06 pandas DataFrame - 数据过滤、NaN处理、统计方法

简介: === 数据过滤获取 ===个人觉得并没有什么用,完全可以用切片或索引器代替stu_info = pd.read_excel('student_info1.

=== 数据过滤获取 ===

个人觉得并没有什么用,完全可以用切片或索引器代替

stu_info = pd.read_excel('student_info1.xlsx',sheetname='countif',index_col='学号').head(3)
stu_info[stu_info.columns[0:]]
img_917765929e96a990110a6c013a984b1a.png

=== 缺失值处理 ===

原数据:

stu_info = pd.read_csv('student_info1.csv',header=1)
stu_info
#stu_info[stu_info.isnull()] 像Series这一处理是不行的
img_e138a181774b1fc1b89d631e06f97469.png

1、删除nan

# 删除nan行
stu_info.dropna()
# 删除nan列
stu_info.dropna(axis=1)

# 设置阈值
# 如果一行都是nan才删除
stu_info.dropna(how='all')

2、设置NaN的值

# 将nan设置为0
stu_info.fillna(0)
img_e2bb806e3fdf6a2c56a75d348c9fe182.png

使用nan下一行的值进行填充 (axis=1列填充)

stu_info.fillna(method='bfill')

使用nan上一行的值进行填充 (axis=1列填充)

stu_info.fillna(method='ffill')
img_3de623f6871ddc6c71b752a881e6372d.png

按列填充

stu_info.fillna({'Math':100,'English':0})
img_87a388e9e1618f0f1fd04a960f42f92d.png

值替换 将语文成绩中88分换成99分

stu_info.replace({88:99})
img_b4e2cd2039ea2ad613906575189c3218.png

=== 统计方法 ===

1、 计数方法count只记非nan值 (axis=1 按列)

stu_info.count()
img_70dd17126049581ae2e69386175fac20.png

2、总统计值

stu_info.describe()
img_b4cc22cf3398e77ebd0149896bc3ffe3.png

3、最值、累加

stu_info.max()
stu_info.min()
stu_info.sum()

4、中位数 quantile median

stu_info.quantile()
stu_info.median()

5、 最大值的索引值

stu_info.idxmax()
#stu_info.argmax()#在0.21版本中删除了
img_6f0da8dc4fddaf5e3f036831ee5b0333.png

6、 偏科程度(判断一组数据的最大值和最小值差别是不是很大)

stu_info.mad(axis=1)
img_fadf407ae12b7f181507095bcf3d18b9.png

7、 样本值累计和
本行值加上一行的值,88+33=121

stu_info.cumsum()
img_7dfa2f185ff5e84345cc3ee563aea288.png

8、变化率

stu_info.pct_change()

第一行NaN,因为上一行没有数据,无法计算变化率
正的是增长的百分率,负的是减少的半分率


img_ebd84139e64c98c4185d8e342472f3bc.png

=== 常用统计方法 ===

img_af05353a0b7f3ce3e924e4601f015edd.png
img_be7439b670492004a033a78cf9e4d3ea.png
相关文章
|
12天前
|
SQL 数据库 索引
Pandas之DataFrame,快速入门,迅速掌握(三)
Pandas之DataFrame,快速入门,迅速掌握(三)
|
12天前
|
数据采集 索引 Python
Pandas之DataFrame,快速入门,迅速掌握(二)
Pandas之DataFrame,快速入门,迅速掌握(二)
|
9天前
|
Python
使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序
使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序。示例代码展示了如何按'Name'和'Age'列排序 DataFrame。先按'Name'排序,再按'Age'排序。sort_values()的by参数接受列名列表,ascending参数控制排序顺序(默认升序),inplace参数决定是否直接修改原DataFrame。
23 1
|
9天前
|
NoSQL Serverless Python
在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。
在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。方法一是直接赋值,如`df['C'] = 0`,创建新列C并初始化为0。方法二是应用函数,例如定义`add_column`函数计算A列和B列之和,然后使用`df.apply(add_column, axis=1)`,使C列存储每行A、B列的和。
38 0
|
9天前
|
Python
在Pandas中,利用boolean indexing可按条件过滤DataFrame
【5月更文挑战第2天】在Pandas中,利用boolean indexing可按条件过滤DataFrame。通过&(和)和|(或)操作符可基于多个条件筛选。
19 1
|
12天前
|
数据可视化 数据挖掘 C++
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
|
12天前
|
编译器 索引 Python
Pandas之DataFrame,快速入门,迅速掌握(一)
Pandas之DataFrame,快速入门,迅速掌握(一)
|
18天前
|
数据挖掘 数据处理 索引
python常用pandas函数nlargest / nsmallest及其手动实现
python常用pandas函数nlargest / nsmallest及其手动实现
35 0
|
18天前
|
Python
如何使用Python的Pandas库进行数据透视图(melt/cast)操作?
Pandas的`melt()`和`pivot()`函数用于数据透视。基本步骤:导入pandas,创建DataFrame,然后使用这两个函数变换数据。示例代码:导入pandas,定义一个包含'Name'和'Age'列的DataFrame,使用`melt()`转为长格式,再用`pivot()`恢复为宽格式。
26 1
|
19天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
24 2