news 2026/5/1 7:53:40

数据据统计基础之Pandas.DataFrame学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据据统计基础之Pandas.DataFrame学习

Pandas 是 Python 中用于数据分析的核心库之一,其中 DataFrame 是最常用的数据结构,类似于 Excel 表格或 SQL 表。下面我们将从 创建、属性、索引、筛选、统计、排序 等多个维度全面介绍 DataFrame 的基本用法。

# dataframe的创建方式importpandasaspdimportnumpyasnp# 通过series来创建s1=pd.Series([1,2,3,4,5])s2=pd.Series([6,7,8,9,10])df=pd.DataFrame({"第一列":s1,"第二列":s2})type(df["第一列"])# 通过字典来创建df=pd.DataFrame({"id":[1,2,3,4,5],"name":["Tom","jack","alice","bob","allen"],"age":[15,17,20,26,30],"score":[60.5,80,30.6,70,83.5]},index=[1,2,3,4,5],columns=["name","id","age","score"])df
nameidagescore
1Tom11560.5
2jack21780.0
3alice32030.6
4bob42670.0
5allen53083.5
# dataframe的属性print('行索引:')print(df.index)print('列标签:')print(df.columns)print('值:')print(df.values)
行索引: Index([1, 2, 3, 4, 5], dtype='int64') 列标签: Index(['name', 'id', 'age', 'score'], dtype='object') 值: [['Tom' 1 15 60.5] ['jack' 2 17 80.0] ['alice' 3 20 30.6] ['bob' 4 26 70.0] ['allen' 5 30 83.5]]
print('维度:',df.ndim)print('数据类型:')print(df.dtypes)print('形状:',df.shape)print('元素个数:',df.size)
维度: 2 数据类型: name object id int64 age int64 score float64 dtype: object 形状: (5, 4) 元素个数: 20
# 行列转置print(df.T)
1 2 3 4 5 name Tom jack alice bob allen id 1 2 3 4 5 age 15 17 20 26 30 score 60.5 80.0 30.6 70.0 83.5
# 获取元素 loc iloc at iat# 某行print(df.loc[4])print(df.iloc[3])
name bob id 4 age 26 score 70.0 Name: 4, dtype: object name bob id 4 age 26 score 70.0 Name: 4, dtype: object
# 某列print(df.loc[:,'name'])print(df.iloc[:,0])
1 Tom 2 jack 3 alice 4 bob 5 allen Name: name, dtype: object 1 Tom 2 jack 3 alice 4 bob 5 allen Name: name, dtype: object
# 单个元素print(df.at[3,'score'])print(df.iat[2,1])print(df.loc[3,'score'])print(df.iloc[2,1])
30.6 3 30.6 3
# 获取单列数据print(df['name'])print(type(df['name']))print(df.name)
1 Tom 2 jack 3 alice 4 bob 5 allen Name: name, dtype: object <class 'pandas.core.series.Series'> 1 Tom 2 jack 3 alice 4 bob 5 allen Name: name, dtype: object
print(df[['name','score']])#多列数据的获取
name score 1 Tom 60.5 2 jack 80.0 3 alice 30.6 4 bob 70.0 5 allen 83.5
# 查看部分数据print(df.head(2))print(df.tail(3))
name id age score 1 Tom 1 15 60.5 2 jack 2 17 80.0 name id age score 3 alice 3 20 30.6 4 bob 4 26 70.0 5 allen 5 30 83.5
# 使用布尔索引筛选数据df[df.score>70]df[(df.score>70)&(df.age<20)]
nameidagescore
2jack21780.0
# 随机抽样df.sample(3)
nameidagescore
4bob42670.0
1Tom11560.5
2jack21780.0
print(df.isin(['jack',20]))# 查看元素是否包含在参数集合中
name id age score 1 False False False False 2 True False False False 3 False False True False 4 False False False False 5 False False False False
print(df.isna())# 查看元素是否是缺失值
name id age score 1 False False False False 2 False False False False 3 False False False False 4 False False False False 5 False False False False
print(df['score'].sum())# 某一列的总和print(df.score.max())# 最大值print(df.age.min())# 最小值print(df.score.mean())# 平均值print(df.score.median())# 中位数print(df.age.mode())# 众数print(df.score.std())# 标准差print(df.score.quantile(0.25))# 分位数print(df.describe())
324.6 83.5 15 64.92 70.0 0 15 1 17 2 20 3 26 4 30 Name: age, dtype: int64 21.188605428390044 60.5 id age score count 5.000000 5.000000 5.000000 mean 3.000000 21.600000 64.920000 std 1.581139 6.268971 21.188605 min 1.000000 15.000000 30.600000 25% 2.000000 17.000000 60.500000 50% 3.000000 20.000000 70.000000 75% 4.000000 26.000000 80.000000 max 5.000000 30.000000 83.500000
print(df.count())# 返回每一列非缺失值的个数
name 5 id 5 age 5 score 5 dtype: int64
print(df.value_counts())# 出现的次数
name id age score Tom 1 15 60.5 1 alice 3 20 30.6 1 allen 5 30 83.5 1 bob 4 26 70.0 1 jack 2 17 80.0 1 Name: count, dtype: int64
print(df.drop_duplicates())
name id age score 1 Tom 1 15 60.5 2 jack 2 17 80.0 3 alice 3 20 30.6 4 bob 4 26 70.0 5 allen 5 30 83.5
print(df.duplicated(subset=['age']))# 查看是否重复
1 False 2 False 3 False 4 False 5 False dtype: bool
df.sample(2)# 随机抽样
nameidagescore
1Tom11560.5
2jack21780.0
print(df.replace(15,30))
name id age score 1 Tom 1 30 60.5 2 jack 2 17 80.0 3 alice 3 20 30.6 4 bob 4 26 70.0 5 allen 5 30 83.5
df.cumsum()df.cummax()df.cummin(axis=0)
nameidagescore
1Tom11560.5
2Tom11560.5
3Tom11530.6
4Tom11530.6
5Tom11530.6
print(df.sort_index(ascending=False))
name id age score 5 allen 5 30 83.5 4 bob 4 26 70.0 3 alice 3 20 30.6 2 jack 2 17 80.0 1 Tom 1 15 60.5
print(df.sort_values(by=['score','age']))
name id age score 3 alice 3 20 30.6 1 Tom 1 15 60.5 4 bob 4 26 70.0 2 jack 2 17 80.0 5 allen 5 30 83.5
df.nlargest(2,columns=['score','age'])df.nsmallest(2,columns=['score','age'])
nameidagescore
3alice32030.6
1Tom11560.5
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:53:38

语音识别与说话人分离:如何破解多人语音处理难题

语音识别与说话人分离&#xff1a;如何破解多人语音处理难题 【免费下载链接】FunASR A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc. …

作者头像 李华
网站建设 2026/5/1 9:12:29

零基础学Betaflight:飞控设置手把手教程

以下是对您提供的博文《零基础学Betaflight:飞控设置手把手技术解析》的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI腔调与模板化结构(无“引言/概述/总结”等机械分节) ✅ 所有内容有机融合,以工程师真实调试视角自然推进 ✅ 技术细节不…

作者头像 李华
网站建设 2026/5/1 9:31:30

Spring AI 实战指南:从入门到精通

Spring AI 实战指南&#xff1a;从入门到精通 【免费下载链接】spring-ai An Application Framework for AI Engineering 项目地址: https://gitcode.com/GitHub_Trending/spr/spring-ai Spring AI 作为一款AI工程应用框架&#xff0c;提供了构建企业级AI应用的完整解决…

作者头像 李华
网站建设 2026/5/1 9:33:26

Area51跨平台音频引擎:突破性游戏音效系统实战指南

Area51跨平台音频引擎&#xff1a;突破性游戏音效系统实战指南 【免费下载链接】area51 项目地址: https://gitcode.com/GitHub_Trending/ar/area51 如何解决跨平台游戏音频的三大核心矛盾 游戏音频开发长期面临着"不可能三角"困境&#xff1a;跨平台兼容性…

作者头像 李华
网站建设 2026/5/1 10:01:39

专业级离线音频转录解决方案:完全掌握Buzz语音识别工具

专业级离线音频转录解决方案&#xff1a;完全掌握Buzz语音识别工具 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz Buzz是一款…

作者头像 李华
网站建设 2026/5/1 8:53:51

实时语音交互技术:从原理到落地的全维度解析

实时语音交互技术&#xff1a;从原理到落地的全维度解析 【免费下载链接】FunASR A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc. 项目…

作者头像 李华