1. 程式人生 > >Pandas資料預處理操作

Pandas資料預處理操作

(1)資料的升序與降序

import pandas

food_info = pandas.read_csv(r"E:\PyCharm\food_info.csv")

food_info.sort_values("Sodium_(mg)", inplace= True)                     #對某列資料按照升序進行排列, ascending預設值為True(升序)

food_info.sort_values("Sodium_(mg)", inplace= True, ascending = False)      #ascending對資料按照降序排列

print(food_info["Sodium_(mg)"])

 

(2)泰坦尼克船員獲救資訊分析

import pandas as pd 

import numpy as py

titanic_survival = pd.read_csv(r".....檔案地址....")

age = titanic_survival["Age"]                        #獲取名字為Age的列

age_is_null = pd.isnull(age)                         #判斷列中的數值是否為空,空[true], 非空[false]

age_null_true = age[age_is_null]                 #找出為空的列並顯示出來

age_null_count = len(age_null_true)           #顯示出多少列為空

 

檔案中有缺失值的話,沒辦法進行平均值求和或其它一些操作,所以要對缺失值進行處理

如:

mean_age = sum(titanic_survival["Age"]) / len(titanic_survival["Age"])             #打印出的結果為nan

 

處理方法

good_ages = titanic_survival["Age"][age_is_null == false]                 #取出年齡不為空的值

corrent_mean_age = sum(good_ages) / len(good_ages)                   #然後計算平均值

另一種計算平均值的方法

correct_mean_age = titanic_survival["Age"].mean()

 

(3)計算不同倉的船員的票價平均數

passenger_classes = [1,2,3]                                 #不同倉的等級

fares_by_class = {}                                                #一個不同倉等級和該等級的平均價為的一個空子典

for this_class in passenger:

        pclass_row = titanic_survival[titanic_survival["Pclass"] == this_class ]                  #找出某等級倉的所有列

        pclass_fares = pclass_row["Fare"]                                                                         #找到某等倉的名稱為Fare列的所有資料

        fare_for_class = pclass_fares.mean()                                                                    #求出某等倉名稱為Fare列的平均值

        fares_by_class[this_class] = fare_for_class                                               #把船艙等級和該等級的平均數加入到字典當中。

print(fares_by_class)

 

 

(4)不同倉的人的獲救平均數

passenger_survival = titanic_survival.pivot_table(index="Pclass",  values="Survived", aggfunc=np.mean)    #aggfunc預設為求均值方法

以Pclass為索引計算不同Pclass的人數獲救概率(Survived為0或1,表示是否獲救),結果如下:

 

(5)計算不同倉的年齡平均值

passenger_age = titanic_survival.pivot_table(index="Pclass", values="Age")

結果如下:

 

(6)以登陸碼頭(C,Q,S碼頭)為索引計算碼頭收的總金額,同時計算該碼頭獲救人數

port_stats = titanic_survival.pivot_table(index="Embarked", values=["Fare", "Survival"], aggfunc=np.sum)    

結果為:

 

  (7)把缺失值丟掉

new_titanic_survival = titanic_survival.dropna(axis=0, subset=["Age", "Pclass"])

把列Age和Pclass列中的值為空的行丟掉

 

(8)找出某行某列的某個資料

row_index_83_age  = titanic_survival.loc[83,  "Age"]                  #找出第83行,Age列的資料