1.读csv文件数据
import pandas as pd
Info = pd.read_csv('titanic_train.csv');
#print(type(Info)) #Info的类型 <class 'pandas.core.frame.DataFrame'>
#Info.dtypes #得到每个字段的类型 字符串类型变为objec
#help(type) 查看函数使用
Info.head(10) #显示前10行
Info.tail(2) #显示最后2行
#Info.shape # 输出 (样本数(行数), 列数)
2.对读入的csv文件数据 取值
Info['Name'] #得到这一列的数据
Info[['Name','Survived']] #得到多列数据
Info['Name'][[1,2,3]] #1,2,3行的Name信息
Info.loc[2] #得到第2个样本的数据
Info.loc[2:6] #得到 2-6
Info.loc[[2,5,7]] #指定几行样本
Info.loc[88,"Name"] #第88行的Name列数据
Info.loc[88:100,"Name"] #第88-100的Name列数据
Info.loc[[88,100],"Name"] #第88,和第100行的Name列数据
Info.loc[88:100,["Name","Survived"]] #多列
print(Info['Fare'].max()) #这一列最大值
print(Info['Fare'].max())
#丢弃带有NAN的所有项 通常情况下删除行,使用参数axis = 0,删除列的参数axis = 1,通常不会这么做,那样会删除一个变量。
print(Info.dropna(axis=0));
Info.values #得到一个值的 numpy.ndarray
Info.columns #输出每列的列名
3.排序,索引设置
#可选参数
#ascending True降序, False升序
#axis = 0(默认) 就是按照列排序 ,此时第一个参数是列名
#axis = 1 按照行排序 此时第一个参数是行号
#inplace 是否替代原来的数据框
Info.sort_values("Fare",ascending=True,axis=0).head(2)
#drop为False 表示原来的索引列会被还原为普通列存起来,True则会把原来索引丢掉 , 默认False
Info.sort_values("Fare",ascending=True,axis=0).head(10).reset_index(drop=True)
#设置新索引
Info.sort_values("Fare",ascending=True,axis=0).head(10).set_index("Fare")
下面是找到以 d结尾的列名的值
#下面是找到以 d结尾的列名的值
cols = Info.columns.tolist() #列 =》 lis
P = [];
for i in cols:
if i.endswith('d'):
P.append(i)
Info[P]
如果每张票打6折是多少钱
#Info['Fare'] = Info['Fare']*0.6 注意, = 的两端纬度要相同(行数)
泰坦尼克遇难统计
#获救者平均年龄
InfoS =Info.query("Survived == 1")
age_is_null = pd.isnull(InfoS['Age']) #Age这一列 是否缺值的情况
Info_Age = InfoS['Age'][age_is_null == False]; #得到Age栏不为空的值
Info_Age.sum() / Info_Age.shape[0] # 28.343689655172415
InfoS['Age'].mean() #28.343689655172415 不去缺值也能得到一样的答案,说明mean自动去缺值
#每个船舱的平均价格
Passenger_classes = [1,2,3]; #3个船舱
Info_P = Info['Pclass']
R = [];
for i in Passenger_classes:
r = Info['Fare'][Info_P == i].mean()
R.append(r);
R
apply 自定义函数
#自定义函数
def func(col):
a = col.loc[99];
return a
#使用自定义的函数
h = Info.apply(func
Info.apply(func
#使用函数
import math
Info["Fare"].apply(math.sqrt)
Series
#series 即 矩阵的一行,或者一列
from pandas import Series
n= Info["Name"].shape[0]
#构造一个Series Series(值,索引)
A = Series(Info["Name"].head(3).values,['c','a','c'])
A['a']
A[['a','b']]
A.sort_values() #值排序 a-z升序
Index = sorted(A.index.tolist()) #对索引进行排序
A.reindex(Index) #根据新索引顺序,对老数据排序(索引对应的值不变