mysql缺失值处理方法,[455]pandas.DataFrame基本操作及缺失值处理

本文介绍了如何使用Pandas DataFrame进行数据处理,包括查看数据格式、转换数据类型、处理缺失值,以及数据筛选、添加、删除列等操作。详细讲述了如何用fillna()、dropna()方法填充或删除缺失值,以及使用isnull()进行缺失值检查。此外,还讲解了数据排序、去重、抽样和统计等操作。
摘要由CSDN通过智能技术生成

查看DataFrame数据及属性

import pandas as pd

df_obj = pd.DataFrame() #创建DataFrame对象

df_obj.dtypes #查看各行的数据格式

df_obj['列名'].astype(int)#转换某列的数据类型

df_obj.head() #查看前几行的数据,默认前5行

df_obj.tail() #查看后几行的数据,默认后5行

df_obj.index #查看索引

df_obj.columns #查看列名

df_obj.values #查看数据值

df_obj.describe() #描述性统计

df_obj.T #转置

df_obj.sort_values(by=['',''])#同上

为DataFrame添加新的属性列

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.randint(0, 10, (2, 4)), columns=list('ABCD'))

df['total'] = df['A'] + df['B'] + df['C'] + df['D']

# 等价于 df['total'] = df.A + df.B + df.C + df.D

数据类型

df.values ⇒ 返回的是 numpy 下的多维数组; df.column_name.values ⇒ 返回的也是 numpy 下的数组类型; df.dtypes:返回的是各个属性列的类型; df.select_dtypes([np.object]),df.select_dypes([bool])

简单数据统计

统计某一属性可能的取值:df.column_name.unique()

统计出现的次数:df.column_name.value_counts() column_name 对应的是该 DataFrame 中某列的列名;也即 pandas 下的 DataFrame 对象直接支持 点+列名的方式进行索引;

缺失值的处理

所有缺失值字段填充为 0:df.fillna(0),一定要十分注意的一点是,df.fillna() 操作默认(inplace=False)不是 inplace,也即不是对原始 data frame 直接操作修改的,而是创建一个副本,对副本进行修改;

df.fillna(0, inplace=True)df = df.fillna(0)  舍弃那些全行为 NaN 的行,以及全列为 NaN 的行:

df.dropna(axis=[0, 1], how=’all’)  删除某些行和列:

df.drop([], axis=1, inplace=True) ⇒ axis = 1,删除列;df.drop([], axis=0, inplace=True) ⇒ axis = 0,删除行;

首先创建具有缺失值NaN(Not A Number)的CSV(comma-separated values)文件:

import pandas as pd

from io import StringIO

csv_data = '''A,B,C,D

1.0,2.0,3.0,4.0

5.0,6.0,,8.0

0.0,11.0,12.0,'''

df = pd.read_csv(StringIO(csv_data))

删除含缺失值的样本

具体处理方法:

df.isnull()#是缺失值返回True,否则范围False df.isnull().sum()#返回每列包含的缺失值的个数 df.dropna()#直接删除含有缺失值的行 df.dropna(axis = 1)#直接删除含有缺失值的列 df.dropna(how = ‘all’)#只删除全是缺失值的行 df.dropna(thresh = 4)#保留至少有4个缺失值的行 df.dropna(subset = [‘C’])#删除含有缺失值的特定的列

填充缺失值

数值型数值(Numerical Data)

方法一:fillna()函数

df.fillna(0):用0填充 df.fillna(method=‘pad’):用前一个数值填充 df.fillna(df2.mean()):用该列均值填充

均值填充

age_mean = data.Age.mean()

# age_mean = data['Age'].mean()

data.Age[data['Age'].isnull()] = age_mean

# data['Age'] == data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值