标签:pandas mba value axis 情况 cab 缺失值 特征 处理
import pandas as pd data = pd.read_csv("train.csv") #确定每一列,或者叫每一个series下,是否有空数据 columns_name = data.columns.tolist() columns_name_true_false={} print(type(columns_name)) print(columns_name[0]) for i in columns_name: lenth = len(data[data[i].isnull()==True]) columns_name_true_false[i]=lenth print(columns_name_true_false) #确定每一列,或者叫每一个series下,是否有空数据 #输出发现,‘Age‘、‘Cabin‘和‘Embarked‘有空数据,下一步要填补这些空数据。
输出:
{‘PassengerId‘: 0, ‘Survived‘: 0, ‘Pclass‘: 0, ‘Name‘: 0, ‘Sex‘: 0, ‘Age‘: 177, ‘SibSp‘: 0, ‘Parch‘: 0, ‘Ticket‘: 0, ‘Fare‘: 0, ‘Cabin‘: 687, ‘Embarked‘: 2}
下面要处理这些空数据。
#处理‘Embarked‘,计算‘Embarked‘中C、S、Q出现的次数,用出现次数多的填补空位置。 Embarked_list=[‘S‘,‘C‘,‘Q‘] Embarked_list_times = {} for i in Embarked_list: times = len(data[data[‘Embarked‘]==i]) Embarked_list_times[i]=times print(Embarked_list_times) #处理‘Embarked‘,计算‘Embarked‘中C、S、Q出现的次数,用出现次数多的填补空位置。
输出:
{‘S‘: 644, ‘C‘: 168, ‘Q‘: 77}
发现‘S’的次数最高,那就用S填补这些空位置。
data.fillna(axis=0,value=‘S‘,inplace=True)
‘Cabin‘缺失值太多,舍掉这个特征。
data.drop(‘Cabin‘,axis =1,inplace=True)
下边处理Age空缺的问题,一般可以用中值和均值填补空缺位置。这里两种情况都试一下,看下结果有什么差异。
data1 = data[‘Age‘].dropna(axis=0) zhongshu = data1.median() data[‘Age‘].fillna(value=zhongshu,inplace=True) #用中值弥补空缺位置 #data[‘Age‘].fillna(value=data1.mean(),inplace=True) #用均值弥补空缺位置
标签:pandas mba value axis 情况 cab 缺失值 特征 处理
原文地址:https://www.cnblogs.com/lgwdx/p/13508819.html