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列的資料