一、Pandas的构建
# -*- coding: UTF-8 -*-
import pandas
from pandas import DataFramedata = {'state':['Ohino','Ohino','Ohino','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002],'pop':[1.5,1.7,3.6,2.4,2.9]}
DF = DataFrame(data)
print(DF)# 输出结果:pop state year
0 1.5 Ohino 2000
1 1.7 Ohino 2001
2 3.6 Ohino 2002
3 2.4 Nevada 2001
4 2.9 Nevada 2002
注:(因为涉及到文件不同,输出内容不同,该文章不加输出结果,有想要测试的可以评论留邮箱,我发文件)
1、读取csv文件,使用read_csv函数
food_info = ad_csv("food_info.csv")
print(food_info)
# print(type(food_info))
# print(food_info.dtypes)
print(food_info.head(3)) # 默认取前5条数据,如需自定义所取数,传数字即可 print(food_info.tail(3)) # 默认取后5条数据,如需自定义所取数,传数字即可 print(lumns) # 每列数据的标题
2、索引与计算
行:列:print(food_info.loc[[0, 2, 4]]) # 取到第0、2、4行的数据 print(food_info.loc[0:1]) # 取到第1行到第二行的数据
拿到每列标题并转为listdata_col = food_info["NDB_No"] # NDB_No为第1列的标题 print(data_col)# data_cols = food_info[["NDB_No","Shrt_Desc"]] # 取多列数据
从上述的col_list中找到标题以“g”结尾的列数据print(lumns) col_list = list() print(col_list)
计算:csv表中有一列数据单位是mg,我们需要将该列数据转为g为单位,那么这列数据除以1000即可,然后可以替换原表中数据titles_g = [] for col_title in col_list:if dswith("(g)"):titles_g.append(col_title) data_g = food_info[titles_g] print(data_g.head(3))
取一列当中最大值,最小值同理data_1000 = food_info["Calcium_(mg)"]/1000 print(data_1000) = data_1000# 还可以再加一列 food_info["Calcium_(g)"] = data_1000
data_max = food_info["Calcium_(mg)"].max()
3、数据预处理
排序:预处理数据,(计算表中一列数据的平均值,这一列数据有无效数据,故需要拿到有效数据后再算average):# -*- coding: UTF-8 -*- import pandasfood_info = ad_csv("food_info.csv") # sort_values函数,让表根据Water_(g)这一列的值排列,inplace是否在原文件上修改,ascending指是否升序 new_food_info = food_info.sort_values("Water_(g)",inplace=False,ascending=False) # print(new_food_info)# 让index值根据排序后reset,可以将上下两个打印出来做index的对比 new_food_info_reIndexed = new_set_index(drop=True) print(new_food_info_reIndexed)
直接用函数算平均值# -*- coding: UTF-8 -*- import pandas import numpy# 打开csv文件 titanic_train = ad_csv("titanic_train.csv") # print(titanic_train.head()) age = titanic_train["Age"]# 将age的数据检查,有数据则为True,没有数据为False age_isnull = pandas.isnull(age) # print(age_isnull)# 拿到没有数据的age值 age_null_true = age[age_isnull] # print(age_null_true) # print(len(age_null_true))# 拿到有数据的age good_ages = age[age_isnull==False] # print(good_ages) # 算age的平均值 age_average = sum(good_ages)/len(good_ages) print(age_average)
定点取数据# 求均值的函数 age_average_mean = an() print(age_average_mean)
# 拿到第60行,"Age"的值 row_index60_age = titanic_train.loc[60,"Age"] print(row_index60_age)# 输出结果是: 22.0
4、根据index为基准,对value作相应的计算# -*- coding: UTF-8 -*- import pandas import numpytitanic_train = ad_csv("titanic_train.csv")# passenger_class = [1,2,3] # Fare_by_class = {} # for this_clas in passenger_class: # pclass_rows = titanic_train[titanic_train["Pclass"] == this_clas] # pclass_fares = pclass_rows["Fare"] # Fare_by_class[this_clas] = an() # print(Fare_by_class)# 需要统计的数据以index为基准,需要统计的值是value,aggfunc需要统计value的关系函数,默认是mean(平均值) passenger_survival = titanic_train.pivot_table(index="Pclass", values="Fare", aggfuncan) print(passenger_survival)# 分别计算Fare与Survived的和,根据Embarked为基准 passenger_survival_2 = titanic_train.pivot_table(index="Embarked",values=["Fare","Survived"],aggfunc=numpy.sum) print(passenger_survival_2)# 输出的结果:Fare Pclass 1 84.154687 2 20.662183 3 13.675550Fare Survived Embarked C 10072.2962 93 Q 1022.2543 30 S 17439.3988 217
本文发布于:2024-02-05 00:39:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170720079461349.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |