python进行数据处理——pandas的drop函数

删除表中的某一行或者某一列更明智的方法是使用drop,它不改变原有的df中的数据,而是返回另一个dataframe来存放删除后的数据。本文出处主要来源于必备工具书《利用python进行数据分析》。

—————————————————————————————————————————————————————

清理无效数据

df[df.isnull()]  #返回的是个true或false的Series对象(掩码对象),进而筛选出我们需要的特定数据。
df[df.notnull()]

df.dropna()     #将所有含有nan项的row删除
df.dropna(axis=1,thresh=3)  #将在列的方向上三个为NaN的项删除
df.dropna(how='ALL')        #将全部项都是nan的row删除

此处:print data.dropna() 和 print data[data.notnull()] 结果一样

填充无效值

df.fillna(0)
df.fillna({1:0, 2:0.5})         #对第一列nan值赋0,第二列赋值0.5
df.fillna(method='ffill')   #在列方向上以前一个值作为值赋给NaN

drop函数的使用

(1)drop函数的使用:删除行、删除列

print frame.drop(['a'])
print frame.drop(['Ohio'], axis = 1)

drop函数默认删除行,列需要加axis = 1

(2)drop函数的使用:inplace参数

采用drop方法,有下面三种等价的表达式:

1. DF= DF.drop('column_name', axis=1);
2. DF.drop('column_name',axis=1, inplace=True)
3. DF.drop([DF.columns[[0,1, 3]]], axis=1, inplace=True)   # Note: zero indexed

注意:凡是会对原数组作出修改并返回一个新数组的,往往都有一个 inplace可选参数。如果手动设定为True(默认为False),那么原数组直接就被替换。也就是说,采用inplace=True之后,原数组名(如2和3情况所示)对应的内存值直接改变;

而采用inplace=False之后,原数组名对应的内存值并不改变,需要将新的结果赋给一个新的数组或者覆盖原数组的内存位置(如1情况所示)。

(3)drop函数的使用:数据类型转换

df['Name'] = df['Name'].astype(np.datetime64)

DataFrame.astype() 方法可对整个DataFrame或某一列进行数据格式转换,支持Python和NumPy的数据类型。

很好,以下是关于 pandas 预处理的答案: pandas 是一种基于 NumPy 的数据分析工具,提供了大量的函数方法来处理数据。在数据分析中,预处理数据是非常重要的一步,pandas 提供了多种方法进行数据预处理,包括数据清洗、缺失值处理、重复值处理、数据转换等。 1. 数据清洗 数据清洗是指对数据进行初步处理,去除不必要的信息和异常值。pandas 提供了多种方法进行数据清洗,包括: - drop_duplicates:去除重复值。 - dropna:去除缺失值。 - replace:替换指定的值。 - fillna:填充缺失值。 - drop:删除指定的行或列。 2. 缺失值处理 缺失值是指数据中的某些值缺失或为空,pandas 提供了多种方法来处理缺失值,包括: - isnull:判断某个值是否为空。 - notnull:判断某个值是否不为空。 - dropna:删除包含缺失值的行或列。 - fillna:填充缺失值。 3. 重复值处理 重复值是指数据中的某些值出现了重复,pandas 提供了多种方法来处理重复值,包括: - duplicated:判断某个值是否出现过重复。 - drop_duplicates:删除重复值。 4. 数据转换 数据转换是指将数据转换成适合分析的格式或类型,pandas 提供了多种方法进行数据转换,包括: - astype:将某列数据转换成指定的数据类型。 - apply:对某个列或行应用指定的函数。 - map:对某个列应用指定的映射关系。 - pivot_table:对数据进行透视操作。 以上就是 pandas 预处理的答案,希望对你有所帮助。如果还有其他问题,可以继续提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值