当前位置: 首页 > news >正文

Pandas 基础操作(案持续更新)

引言

说到excel".csv"表格中的数据处理,就不得不提到pandas模块。这里简单分享一下pandas模块的基础操作。这里表格文件的数据类型以xlsxcsv来举例。

正文

创建一维带索引的数据

Pandas 库中,通常我们需要使用 pd.Series() 函数来创建一维数据。Pandas 库中的索引 index 是按行显示,index 参数的长度必须要保持和数据的行数一致,否则就会报错。

df=pd.Series([3,-5,7,4],index=['a','b','c','d'])print(df)""" reuslt: a 3 b -5 c 7 d 4 dtype: int64 """

可以看到一维的数据是以列的形式进行排列的。

df=pd.Series([3,-5,7,4])print(df)""" result: 0 3 1 -5 2 7 3 4 dtype: int64 """

Pandas 生成的一维数据默认是带索引值的,且索引值从 0 开始。

注意:

  1. Pandas Series 创建后默认就有索引,而且无法彻底关闭或删除索引,因为索引是 Series 的核心数据结构组成部分。但是我们可以在输出的时候令其不显示。
  2. 一维数据无法设定列名

创建二维带索引的数据

Pandas 库中,通常我们需要使用 pd.DataFrame() 函数来创建二维数据。

默认列名的二维数据

data=[["Belgium","india","Brazil"],["Brussels","New Delhi","Brasilia"],["11190846","1303171035","207847528"]]df=pd.DataFrame(data)print(df)


Pandas 库中二维数据默认的列名称从 0 开始,与 index 参数类似。二维数据必须有列名。

自定义列名的二维数据

从列表指定

如果想要自己指定列名,可以使用如下方法:

data=[["Belgium","india","Brazil"],["Brussels","New Delhi","Brasilia"],["11190846","1303171035","207847528"]]df=pd.DataFrame(data,columns=["Country","Capital","Population"])print(df)


可以通过 columns 参数指定二维数据的列名称。

从字典指定

也可以通过字典的关键字信息对二位数据的列名进行指定。

importpandasaspd data={"Country":["Belgium","india","Brazil"],"Capital":["Brussels","New Delhi","Brasilia"],"Population":["11190846","1303171035","207847528"]}df=pd.DataFrame(data)print(df)

当然,也可以再次通过关键字进行列名指定。我们得到与之前一样的结果

当前默认列名为["Country", "Capital", "Population"],如果再次通过关键字 columns 进行指定,会重写默认列名参数。但是因为此时数据是存放在字典中的,列名被改写后,原始 values 数据不会存在。

importpandasaspd data={"Country":["Belgium","india","Brazil"],"Capital":["Brussels","New Delhi","Brasilia"],"Population":["11190846","1303171035","207847528"]}df=pd.DataFrame(data,columns=["0","1","2"])print(df)


可以看到这里我们创建了一个二维数据,其中列标签沿着横向排列。索引值沿着纵向排列。

即,pd.Series() 函数用于创建一维数据,pd.DataFrame() 函数用于创建二维数据。

获取一维数据中单个数据值

# 通过标签获得单个值df=pd.Series([3,-5,7,4],index=['a','b','c','d'])print(df['a'])""" reuslt: 3 """# 通过索引获得单个值print(df[0])""" reuslt: 3 """

我们通过标签或者索引均成功地获得了单个数据值

获取二维数据中单个数据值

数据:

Country Capital Population0Belgium Brussels111908461india New Delhi13031710352Brazil Brasilia207847528

生成数据代码:

data={'Country':['Belgium','india','Brazil'],'Capital':['Brussels','New Delhi','Brasilia'],'Population':['11190846','1303171035','207847528']}df=pd.DataFrame(data,columns=['Country','Capital','Population'])

打印数据代码:

print(df.iloc[0,0])print(df.iat[0,0])""" result: Belgium Belgium """

可以看到,通过DataFrame.iloc()DataFrame.iat()方法我们均成功地获取到了二维数组中的单个数据值。

我们也可以采用其他方式,比如:

print(df.loc[df["Country"]=='Belgium'])print(df.loc[df["Country"]=='Belgium'].values)print(df.loc[df["Country"]=='Belgium'].values[0])print(df.loc[df["Country"]=='Belgium']["Country"])print(df.loc[df["Country"]=='Belgium']["Country"].values)print(df.loc[df["Country"]=='Belgium']["Country"].values[0])print(df.loc[df["Country"]=='Belgium',"Country"])print(df.loc[df["Country"]=='Belgium',"Country"].values)print(df.loc[df["Country"]=='Belgium',"Country"].values[0])print(df.loc[0,"Country"])

输出结果如下,读者可自定比对体会:

Country Capital Population0Belgium Brussels11190846[['Belgium''Brussels''11190846']]['Belgium''Brussels''11190846']0Belgium Name:Country,dtype:object['Belgium']Belgium0Belgium Name:Country,dtype:object['Belgium']Belgium Belgium

可以看到,df.loc[df["Country"]=='Belgium']["Country"]df.loc[df["Country"]=='Belgium', "Country"]的输出结果一致,它们等价,可以类比 numpy 二维数组操作。.

loc() 函数与 iloc() 函数的区别是:loc 基于标签(label)索引,iloc 基于位置(position)索引。

获取DataFrame子集合的值

data={'Country':['Belgium','india','Brazil'],'Capital':['Brussels','New Delhi','Brasilia'],'Population':['11190846','1303171035','207847528']}df=pd.DataFrame(data,columns=['Country','Capital','Population'])print(df[1:])""" result: Country Capital Population 1 india New Delhi 1303171035 2 Brazil Brasilia 207847528 """

可以看到, 我们成功获取到了索引值大于1的原始DataFrame中的所有值。

通过标签获得单行的值

data={'Country':['Belgium','india','Brazil'],'Capital':['Brussels','New Delhi','Brasilia'],'Population':['11190846','1303171035','207847528']}df=pd.DataFrame(data,columns=['Country','Capital','Population'])print(df.loc[[0]])""" result: Country Capital Population 0 Belgium Brussels 11190846 """

可以看到,我们成功获取到了单行的值。

通过标签获得单列的值

data={'Country':['Belgium','india','Brazil'],'Capital':['Brussels','New Delhi','Brasilia'],'Population':['11190846','1303171035','207847528']}df=pd.DataFrame(data,columns=['Country','Capital','Population'])print(df[['Country']])""" result: Country 0 Belgium 1 india 2 Brazil """

可以看到,我们成功获取到了单列的值。

关于提取数据时参数为什么要带中括号的原因可以看这篇pandas中提取单行单列数据时的参数问题(超链接点击跳转)。

码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~

http://www.jsqmd.com/news/1321908/

相关文章:

  • 流量分析实战:从基础认知到高级技战法
  • 通达信、东方财富神奇九转指标计算公式,代码实现
  • 3分钟快速上手:Forza Mods AIO免费极限竞速地平线修改器终极指南
  • 自指度量g^ℛ = g₀ + α·ℛ的正定性与良定义性:理论框架与严格证明报告
  • 2026常州管道疏通哪家好旭日管道疏通免费上门靠谱 - 余生黄金回收
  • 2026实测教程:视频没有字幕也能转文字吗 免费可用方法 - 效率工具研究所
  • 如何快速入门信息检索?TU Wien开源课程的5大核心模块解析
  • 塞尔达传说旷野之息存档编辑器终极指南:三步掌握游戏修改自由
  • Steam游戏自动破解神器:终极免Steam客户端启动完整指南
  • P5736 【深基7.例2】质数筛
  • 上海本地GEO优化公司实力推荐,附技术实力+实战案例深度解析 - 知汇资讯
  • Appium与Chromedriver组合:移动端WebView自动化测试完整指南
  • 2026佛山市新机去哪家手机店买:佛山哪家手机新机性价比高 - 五大品牌极选
  • 2026年西安做城市生命线安全工程建设的厂家有哪些?
  • 2026年8月国内诚信的DMC绝缘材料实力厂家怎么选择,评价好的DMC绝缘材料厂商口碑推荐,此DMC绝缘材料,抗拉伸性能很优秀 - 品牌推荐师
  • 可灵提示词调试不生效?——从Token切分逻辑到注意力掩码的全链路故障定位手册
  • MinIO桶复制实战:原理、配置与容灾部署指南
  • 从Unix Pipe到Go Channel:深入解析管道模式在并发与系统设计中的应用
  • Unity UI文本框自动滚动:帧率独立、平滑缓动与性能优化全解析
  • 农业信息管理系统源码 Java+SpringBoot+Vue 万字文档+PPT
  • Unlock Music:让加密音乐重获自由的5个实用方法
  • REFramework:为RE引擎游戏开启无限可能的Mod开发平台
  • Unity-Weld MVVM框架:数据绑定与UI开发效率提升实践
  • 自指宇宙学不动点生成机制下递归对抗系统的稳定性原理研究
  • 2026福州黄金回收怎么选?正规无套路门店盘点,本地变现参考 - 奢侈品回收知识分享
  • Kronos金融预测模型:从入门到实战的完整指南
  • 为什么你的TTS输出总像机器人?(语音自然度评分低于3.2分的5大底层原因及逐项修复路径)
  • MinIO桶复制配置实战:从原理到高可用数据保护
  • Robot Framework自动化测试入门:从核心概念到Web与接口实战
  • JNI与Android NDK详解:原理、调用过程与实践示例