import pandas as pd
import numpy as np
# ============删除/填充 空值============
# 在许多情况下,如果你用 Pandas 来读取大量数据,往往会发现原始数据中会存在不完整的地方。
# 在 DataFrame 中缺少数据的位置, Pandas 会自动填入一个空值,比如 NaN或 Null 。
# 我们可以选择用 .dropna() 来丢弃这些自动填充的值;
# 或是用.fillna() 来自动给这些空值填充数据.
# -------删除--------
# 1、实例数据源(带有空值)
dt_01 = {'A':[1, np.nan, 3], 'B':[2,np.nan,np.nan], 'C':[4,5,6]}
my_datafarme_01 = pd.DataFrame(dt_01)
#print(my_datafarme_01)
# 2、当你使用 .dropna() 方法时,就是告诉 Pandas 删除掉存在一个或多个空值的行(或者列)。
# 删除行用的是 .dropna(axis=0) ,
# 删除列用的是 .dropna(axis=1) 。
# 请注意,如果你没有指定 axis 参数,默认是删除行。
#print(my_datafarme_01.dropna())
#print(my_datafarme_01.dropna(axis=0))
#print(my_datafarme_01.dropna(axis=1))
# ---------填充所有Nan--------
# 类似的,如果你使用 .fillna() 方法,Pandas 将对这个 DataFrame 里所有的空值位置填上你指定的默认值。
# 比如,将表中所有 NaN 替换成 20 :
#print(my_datafarme_01.fillna('20'))
# ---------填充指定位置的Nan-----------
# 避免影响范围太大了,于是我们可以选择只对某些特定的行或者列进行 Nan值 填充
col = ['A','B']
my_datafarme_01[col] = my_datafarme_01[col].fillna('10')
#print(my_datafarme_01)
# 同理,.dropna() 和 .fillna() 并不会永久性改变你的数据,除非你传入了 inplace=True 参数。
# ===============分组统计===============
# Pandas 的分组统计功能:可以按某一列的内容对数据行进行分组,并对其应用统计函数,比如求和,平均数,中位数,标准差等等…
# 例:我们可以对下面这数据表用 .groupby() 方法,按 'Company' 列进行分组,并用 .mean() 求每组的平均值:
# -------数据表-------
dt_01 = {'Company':['GOOGLE','GOOGLE','ORACLE','ORACLE','TWITIER','TWITIER'],
'Person':['Saa','Charlie','Amy','Vanessa','Carl','Sarah'],
'Sales':[200, 120, 340, 124, 243, 350]
}
my_datafarme_02 = pd.DataFrame(dt_01)
#print(my_datafarme_02)
# --------分组并求平均值-
pandas之数据清洗实例大全
最新推荐文章于 2025-06-22 23:25:53 发布