Python自学入门(八):Pandas之数据处理
创始人
2025-05-28 05:15:38

Python自学入门(一):环境安装
Python自学入门(二):数据类型和运算符
Python自学入门(三):数据类型详解
Python自学入门(四):流程控制
Python自学入门(五):函数和模块
Python自学入门(六):Pandas之数据结构
Python自学入门(七):Pandas之文件操作

5.3 数据处理

#数据描述
data.describe()

在这里插入图片描述

5.3.1 统计

函数作用函数作用
sum()求和min()最小值
media()中位数max()最大值
mean()平均数mode()众数
abs()绝对值prod()乘积
std()标准差var()方差
idxmax()最大值的索引idxmin()最小值的索引
cumsum()计算前n个数的和cummax()计算前n个数的最大值
cummin()计算前n个数的最小值cumprod()计算前n个数乘积
# max min median等
data.max(0)  #0是按列计算 默认按列计算
data.idxmax()  #idxmin()
#每一列最大值-最小值
def myfunc(x):return x.max()-x.min()#选两列数据
data[['open','close']].apply(myfunc,axis=0)

5.3.2 空值

空值可能在数据中是缺失值,也可能使用符号代替,如问号,省略号等。读取数据,一般情况下,空值在DataFrame中显示NaN

import pandas
import numpy as np
data=pandas.read_csv("./data/NaN_data.csv")
data
#判断是否为null,如果该单元格是空值,则显示True(表格形式)
pandas.notnull(data)
#利用numpy判断是否具有空值,表格中包含一个False就是False
np.all(pandas.notnull(data))pandas.isnull(data) #和notnull相反#替换缺失值 取均值填充
data['tradecount'].fillna(data['tradecount'].mean(),inplace=True)
data2=pandas.read_csv("./data/NaN_data.csv")
data2.dropna()  #直接删除缺失值

对于非NaN的空值,比如问号,需要替换掉对应的占位符

data3=pandas.read_csv("./data/Null_data.csv")
data3=data3.replace(to_replace='?',value=np.nan)  #替换成NaN

5.3.3 数据离散化

nba=pandas.read_csv("./data/nba.csv")
nba.head()

在这里插入图片描述

weight = nba['Weight']
# 自动分10组
weight_qcut=pandas.qcut(weight,10)
weight_qcut

在这里插入图片描述

weight_qcut.value_counts()

在这里插入图片描述

# 指定分组区间
bins = [160,180,200,220,240,260,280]
hcut = pandas.cut(weight,bins)
#统计每个区间有多少
hcut.value_counts()
# one-hot编码(独热编码)
dummies=pandas.get_dummies(hcut)
dummies

在这里插入图片描述

5.3.4 数据表合并

#直接合并
pandas.concat([nba,dummies],axis=1) #axis 1行 0 列

表连接,根据一定条件,把两个表中的数据合并到一起,关联的数据合并到一行

left=pandas.read_csv('./data/table1.csv')
right=pandas.read_csv('./data/table2.csv')
result1=pandas.merge(left,right,how='inner',on=['key'])
result2=pandas.merge(left,right,how='left',on=['key'])
result3=pandas.merge(left,right,how='right',on=['key'])
result4=pandas.merge(left,right,how='outer',on=['key'])

在这里插入图片描述

在这里插入图片描述

5.3.5 交叉表和透视表

交叉表查询是将来源于某个表中的字段进行分组,一组列在交叉表左侧,一组列在交叉表上部,并在交叉表行与列交叉处显示表中某个字段的各种计算值。

import pandas
import numpy
import matplotlib.pyplot as plt
data=pandas.read_csv("./data/stock_day.csv")
data=data.set_index('date') 
#将日期是星期几提取出来
date=pandas.to_datetime(data.index).weekday
data['week']=date #加入到数据集中
data['rise']=numpy.where(data['close']>data['open'],1,0) #计算收盘比开盘价高的
count=pandas.crosstab(data['week'],data['rise']) #交叉表

在这里插入图片描述

计算比例

sum=count.sum(axis=1).astype(numpy.float32)
pro=count.div(sum,axis=0)

在这里插入图片描述

数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。

#直接使用透视表,省略之前的计算
data.pivot_table(['rise'],index='week')

在这里插入图片描述

5.3.6 分组聚合

data=pandas.read_excel("./data/group_data.xlsx")
data.head()

在这里插入图片描述

data.groupby(['color'])['price1'].max()

在这里插入图片描述

data.groupby(['color'],as_index=False)['price1'].max()

在这里插入图片描述

相关内容

热门资讯

【聚焦】内蒙古15地入选!20... 近日,文化和旅游部公布2026年全国“四季村晚”主会场和示范展示点名单,内蒙古15个地区成功入选,成...
解读一下咸阳必体验的特色活动 ## 咸阳漫游:穿越千年的秦地风情体验 在陕西这片厚重的黄土地上,咸阳如同一本摊开的历史典籍,每一页...
春节假期好去处 丘浚海瑞故居正... 丙午新春,万象更新。丘浚海瑞故居是历史的载体,更是宣传廉洁文化的重要场所。2026年春节假期,丘浚海...
市文化广电旅游体育局开展加强春... 2月10日上午,市文化广电旅游体育局召开全市行业安全生产和假日市场工作视频会议,传达贯彻省、市有关会...
苏杭沪旅游|自由行攻略,三地交... 还在为苏杭沪自由行怎么串联、住哪里、怎么走最顺而头疼吗?这篇攻略,用真实数据和亲身踩过的“坑”,帮你...