python pandas模块使用

文件目录:
这里写图片描述

import pandas as pd
import numpy as np
titanic_survial = pd.read_csv("titanic_train.csv")
#print(titanic_survial.head(1))
####泰坦尼克获救
##PassengerId(编号),Survived(标签,分类标准),Pclass(仓位等级),Name(姓名),Sex(性别),Age,SibSp(当前这个人所有兄弟姐妹的数量),Parch(老人和孩子的数量),Ticket(船票编号,用不到),Fare(这个人的船票价格),Cabin(这个人的船舱编号,NaN是缺失值),Embarked(当前这个人登船的地点,有三个# )
age = titanic_survial['Age']
# print(age.loc[0:10])
age_is_null = pd.isnull(age) ###返回为True    False
# print(age_is_null)
age_null_true = age[age_is_null]  ##1.先isnull 判断是否是一个缺失值,然后通过age[age_is_null]  拿到所有缺失值得索引。可以传进来值,也可以传进来True,False
#print(age_null_true)
age_null_true = len(age_null_true)
#print(age_null_true)
###这就是对缺失值得处理
##求平均年龄
mean_age = sum(titanic_survial["Age"]) / len(titanic_survial["Age"])
#print(mean_age)   ###因为有缺失值,但是算不出来。
###缺失值填充手段,直接去掉缺失值
good_ages = titanic_survial["Age"][age_is_null == False]
#print(good_ages)
#correct_mean_age = sum(good_ages) / len(good_ages)
#print(correct_mean_age)
##方案二:
correct_mean_age = titanic_survial["Age"].mean()   ##使用.mean,不建议。通常可以使用样本的均值来填补
#print(correct_mean_age)
##分别求不同仓位等级的平均价格
passengert_class = [1,2,3]
fares_by_class = {}
for this_class in passengert_class:
    pclass_rows = titanic_survial[titanic_survial["Pclass"] == this_class]  ###1.先筛选出所有的 1 级餐位
    pclass_fares = pclass_rows["Fare"]  ##2.定位到价格
    fare_for_class = pclass_fares.mean() ###3.求出平均值
    fares_by_class[this_class] = fare_for_class
#print(fares_by_class)
#######需求:住一等舱平均获救了多少人,住二等舱,三等舱。。。。
passenger_suvival = titanic_survial.pivot_table(index="Pclass",values="Survived",aggfunc=np.mean)##index 指明 以谁为基准,values 是pclass和什么之间的关系,aggfunc 是指明这2个之间的什么关系。我们要算的是平均
#print(passenger_suvival)
###需求:住一等舱的平均年龄,二等,三等。
passenger_age = titanic_survial.pivot_table(index="Pclass",values="Age")##m默认求均值的操作
#print(passenger_age)
##需求:想同时看一下一个量和两个量之间的一个关系
port_stats = titanic_survial.pivot_table(index="Embarked",values=["Fare","Survived"],aggfunc=np.sum)###
#print(port_stats)
#                 Fare  Survived
# Embarked
# C         10072.2962        93
# Q          1022.2543        30
# S         17439.3988       217
###dropna 对缺失数据丢掉
drop_na_columns = titanic_survial.dropna(axis=1)
new_titanic_survival = titanic_survial.dropna(axis=0,subset=["Age","Sex"])####对着2个列,如果有缺失,丢弃
#axis = 0 代表对横轴操作,也就是第0轴;
#axis = 1 代表对纵轴操作,也就是第1轴;
#print(new_titanic_survival)
###定位到一个具体的值,行号和列好组成的。左边样本的编号,右边列明
row_index_83_age = titanic_survial.loc[83,"Age"]
row_index_1000_pclass = titanic_survial.loc[766,"Pclass"]
# print(row_index_83_age)
# print(row_index_1000_pclass)
######Age 降续排列
new_titanic_survival = titanic_survial.sort_values("Age",ascending=False)  ###ascending 默认升序
#print(new_titanic_survival)
titanic_reindexed = new_titanic_survival.reset_index(drop=True)  #####index 也按默认排序   原来的不要的用新的
# print('--------------')
# print(titanic_reindexed.loc[0:10])
##需求:内置函数实现不了的需求
def hundredth_row(column):
    hundredth_item = column.loc[99]
    return hundredth_item
hundredth_row = titanic_survial.apply(hundredth_row)
#print(hundredth_row)
##如何实现数据转换
def which_class(row):
    pclass = row["Pclass"]
    if pd.isnull(pclass):
        return "unknown"
    elif pclass == 1:
        return "First class"
    elif pclass == 2:
        return "Second Class"
    elif pclass == 3:
        return "Third Class"
classes = titanic_survial.apply(which_class,axis=1)
#print(classes)
from pandas import Series
fandango = pd.read_csv("fandango_score_comparison.csv")
series_film = fandango["FILM"]
series_rt = fandango["RottenTomatoes"]
#print(series_film)
#print(type(series_film))
film_names = series_film.values
#print(type(film_names))
#print(film_names)
rt_scores = series_rt.values

series_custom = Series(rt_scores,index=film_names)
print(series_custom[['Minions (2015)','Leviathan (2014)']])###只取2个
##排序功能的实现
original_index = series_custom.index.tolist()
sorted_index = sorted(original_index)
sorted_by_index = series_custom.reindex(sorted_index)


猜你喜欢

转载自blog.csdn.net/qq_25834767/article/details/82152897