栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas 预处理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas 预处理

1.清除空值
如果我们要删除包含空字段的行,可以使用 dropna() 方法
Dataframe.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

  • axis:默认为 0,表示逢空值剔除整行,如果设置参数 axis=1 表示逢空值去掉整列。
  • how:默认为 ‘any’ 如果一行(或一列)里任何一个数据有出现 NA 就去掉整行,如果设置 how=‘all’ 一行(或列)都是 NA 才去掉这整行。
  • inplace:如果设置 True,将计算得到的值直接覆盖之前的值并返回 None,修改的是源数据。
df = pd.Dataframe(pd.read_csv(n,encoding='gbk'))
data = pd.Dataframe(df.dropna())

2.去除重复值
drop_duplicates()
keep: 可选参数有三个:‘first’、 ‘last’、 False, 默认值 ‘first’。其中:

  • first表示: 保留第一次出现的重复行,删除后面的重复行。
  • last表示: 删除重复项,保留最后一次出现。
  • False表示: 删除所有重复项。

inplace:布尔值,默认为False,是否直接在原数据上删除重复项或删除重复项后返回副本。
注意:drop_duplicates删除重复行时,行索引也会删除。需要重置索引
data.reset_index(drop=True)
3.修改异常值

    for x in n.index:
        if n.loc[x,'recently_logged'] == '--':
            n.loc[x, 'recently_logged'] = n.loc[x, 'register_time']
            
n.loc[n['recently_logged'] == '--', 'recently_logged'] = n.loc[n['recently_logged'] == '--', 'register_time']



# for x in df.index:
#     if df.loc[x, 'Sex'] == 'female':
#         df.loc[x,'Sex'] = 0
#     else:
#         df.loc[x,'Sex'] = 1
df.loc[df['Sex'] == 'female', 'Sex'] = 0
df.loc[df['Sex'] == 'male', 'Sex'] = 1


for x in df.index:
  if df.loc[x, "age"] > 120:
    df.drop(x, inplace = True)

4.判段是否非空

isnull() 判断各个单元格是否为空
查看数据整体的缺失值情况
isnull().sum()

可以指定指定空数据类型:
比如
missing_values=[“n/a”, “na”]

5.填充空值
fillna()
df.fillna(0) 用0填充空值
用均值填充空值
x = df[“a”].mean()
df[“a”].fillna(x, inplace = True)
类似可以使用median()中位数,mode()众数

(pima的数据来源在下面的github地址)

数据放到github上了
点击此处

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308831.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号