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]))
记住,众数有时也会是数组,因为可
作者:普通网友