Python数据分析处理库Pandas

阅读: 评论:0

Python数据分析处理库Pandas

Python数据分析处理库Pandas


一、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

二、Pandas处理数据:

注:(因为涉及到文件不同,输出内容不同,该文章不加输出结果,有想要测试的可以评论留邮箱,我发文件)

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行到第二行的数据
列:
data_col = food_info["NDB_No"] # NDB_No为第1列的标题
print(data_col)# data_cols = food_info[["NDB_No","Shrt_Desc"]] # 取多列数据
拿到每列标题并转为list
print(lumns)
col_list = list()
print(col_list)
从上述的col_list中找到标题以“g”结尾的列数据
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))
计算:csv表中有一列数据单位是mg,我们需要将该列数据转为g为单位,那么这列数据除以1000即可,然后可以替换原表中数据
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、数据预处理
排序:
# -*- 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)
预处理数据,(计算表中一列数据的平均值,这一列数据有无效数据,故需要拿到有效数据后再算average):
# -*- 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", aggfunc&#an)
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小时内删除。

标签:数据   Python   Pandas
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23