python库:Pandas学习笔记

Pandas数据读取

在这里插入图片描述
food_info = pandas.read_csv(“文件名”) 读取csv文件

print(type(food_info)) 显示food_info的类型,csv文件的类型是dataframe

print(food_info.dtypes) 显示每一列的特征存储的是什么类型,可以看到在csv文件中,str类型被称作object

food_info.head()显示部分数据,默认前5条数据若是head(4)显示前4行

food_info.tail() 显示尾几行

food_info.columns 显示列名

food_info.shape 行*列

Pandas索引与计算

food_info.loc[0] 第一个样本的数据

ndb_col = food_info[“列名”] 取一列数据
若想取多列,则另column = [列名1,列名2]
col = food_info[column] ,这样就取出了两行

col_names = food_info.columns.tolist() 将每一列的列名提取出来做成list

ndb_col = food_info[“列名”] /1000 就是将该列数据全部除以1000

food_info[ 新列名] = alist 对dataframe新加入一个列名,并给出他说对应的值

ndb_col = food_info[“列名”] .max() 找出一列的最大值

food_info.sort_values(“列名”,inplace= True) #给某一列的值排序
inplace判断是新生成一个dataframe还是在原基础上改,默认是从小到大排序。若想从大到小排序,指令如下
food_info.sort_values(“列名”,inplace= True,ascending=False)

预处理实例

Titanic数据集

age= titanic_survival[“Age”]

age_is_null = pd.isnull(age) #判断age里的值是否缺失,返回的是布尔值,以及与它对应的index,True为缺失

age_null_true = age[ age_is_null ] 返回age_is_null 里为True的值,即缺失值,左边有index,如下:
在这里插入图片描述
存在缺失值,会影响后续计算,需要处理一下。
若想去掉该样本:
new_titanic_surval = titanic_survival.dropna(axis = 0,subset =[“Age”,“Sex”])
若指定两列某些样本存在缺失值,则去掉该样本

若需要计算的值,与两列有关。例如分别计算三种等级船票的生还率:
passenger_survival = titanic_survival.pivot_table(index = ‘Pclass’ , values = “survived”,aggfunc = np.mean) #默认就是求均值的操作
print(passenger_survival )
计算两列以上的值
passenger_survival = titanic_survival.pivot_table(index = ‘Embarked’ , values = [“survived”,“Fare”],aggfunc = np.sum)

自定义函数应用

def hundredth_row(column):
hundredth_item = colomn.loc[99]
return hundreth_item

hundredth_row = titanic_survival.apply(hundredth_row)#默认是列处理,axis= 1 是行处理
print(hundredth_row )
返回所有特征的第100个数据,即第100个样本

当然,你可以定义任何你想处理的函数,比如根据年龄判断是成年人还是小孩。

Pandas的其他结构:series

所用数据集如下:
在这里插入图片描述
series是dataframe里的一行或者一列,可以这么说,dataframe是由series构成的。
import pandas as pd
from pandas import Series
fandango = pd.read_csv(“fandango_score_comparision.csv”)
series_film = fandango [“film”]# series_film就是series的type
series_rt = fandango[“RottenTomatoes”]

film_names = series_film.values# film_names 的类型是ndarray,说明dataframe里的结构是series,series里面的结构是ndarray.pandas 是封装在numpy之上的。

series_custom = Series(series_rt, index = series_film )#Series可以把str当作索引值

series_custom.sort_index()#按照series的键排序
series_custom.sort_values()#按照series的值排序

其实dataframe也是可以将str当作index的
fandango_film = fandango.set_index(‘FILM’,drop= False)#将Film当作索引值

rt_mt_user = floatdf[[‘列名’,‘列名’]] #floatdf是所有type为float64类型的列
rt_mt_user .apply(lambda x :np.std(x),axis = 1)#计算这两列数据的标准差,在这里用到的np里的std,要注意这个和pd里的std是不一样的,np是针对总体而言,pd是针对样本而言(除以n-1而不是n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值