机器学习笔记(二):python 模块pandas

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)     #根据新索引顺序,对老数据排序(索引对应的值不变
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值