12个用于Python数据操作的Pandas技巧(附代码)_python pandas 操作

数据集:本文使用 Analytics Vidhya 数据科学大赛中一个“贷款预测”问题中所用的数据集。

https://datahack.analyticsvidhya.com/contest/practice-problem-loan-prediction-iii/

首先我们导入模块,将数据集加载到 Python 环境中:

import pandas as pd
import numpy as np
data = pd.read_csv("train.csv", index_col="Loan_ID")

布尔索引

如果你想根据一定条件从一组列中筛选出一列的值,该怎么办?比如,我们想要一列,包含所有办了贷款且尚未毕业的女性名单。这里使用布尔索引就能帮上忙。可以使用如下代码:

data.loc[(data["Gender"]=="Female") & (data["Education"]=="Not Graduate") & (data["Loan_Status"]=="Y"), ["Gender","Education","Loan_Status"]]

Apply函数

Apply 函数是用于处理数据和创建新变量的常用函数之一。对 DataFrame 的某行/列应用函数之后,Apply 返回一些值。函数既可以使用默认的,也可以自定义。比如,这里就可以用它来寻找每行和每列的缺失值。

#创建一个新函数
def num_missing(x):
  return sum(x.isnull())

#应用每一列
print "Missing values per column:"
print data.apply(num_missing, axis=0) #axis=0 defines that function is to be applied on each column

#应用每一行
print "\nMissing values per row:"
print data.apply(num_missing, axis=1).head() #axis=1 defines that function is to be applied on each row

这样我们就得到了理想结果。

注意:在第二个输出中应用 head() 函数,因为它包含了很多行。

替换缺失值

使用 fillna() 即可一步实现替换缺失值。它可以用目标列的平均值/众数/中位数更新缺失值。在下面的例子中,我们用‘Gender’,‘Married’和‘Self_Employed’这几列的众数替换它们的缺失值。

#首先我们导入一个函数来确定模式
from scipy.stats import mode
mode(data['Gender'])

输出:

ModeResult(mode=array([‘Male’], dtype=object), count=array([489]))

记住,众数有时也会是数组,因为可

作者:普通网友

物联沃分享整理
物联沃-IOTWORD物联网 » 12个用于Python数据操作的Pandas技巧(附代码)_python pandas 操作

发表回复