Pandas-DataFrame使用

文章目录

*
1.创建DataFrame数据

+ 1.1 给DataFrame添加数据
+ 1.3 给行索引和列索引起名
+ 1.4 判断数据是否在DataFrame中
2.DataFrame数据处理

+ 2.1 DataFrame数据切片
+ 2.2 DataFrame数据运算

导入Pandas包, import pandas as pd

DataFrame数据是Pandas数据中的多维数据

1.创建DataFrame数据

有两种创建方法:
DataFrame是多维数据所以要使用字典Dict进行创建
默认索引创建:字典中 {'列索引': [list]}
带索引的创建:字典中 {'列索引': {'行索引1': 数据, '行索引2': 数据}}

默认索引创建:行索引从0开始

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
       'year': [2000, 2001, 2002, 2001, 2002, 2003],
       'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame1 = pd.DataFrame(data)

Pandas-DataFrame使用
带索引的创建:
data = {'state':{'a': 'Ohio', 'b': 'Ohio','c': 'Ohio', 'd':'Nevada', 'e':'Nevada', 'f':'Nevada'},
        'year':{'a': 2000, 'b':2001,'c': 2002, 'd':2001, 'e':2002, 'f':2003},
        'pop':{'a': 1.5, 'b':1.7,'c': 3.6, 'd':2.4, 'e':2.9, 'f':3.2}
       }
frame2 = pd.DataFrame(data)

Pandas-DataFrame使用
默认索引也可以更改索引,达到同样的效果
frame1.index = ['a', 'b', 'c', 'd', 'e', 'f']

1.1 给DataFrame添加数据

如下添加一个’status’列索引,并往索引里赋值;数据需要时一个与原DataFrame行索引长度相同的[list]
举例:

frame['status'] = frame['pop']>2

Pandas-DataFrame使用
再用列表添加一个行索引:
frame['demo'] = [0, 1, 2, 3, 4, 5]

Pandas-DataFrame使用
所需要删除列索引,则使用语句: del frame['列索引名字']

1.3 给行索引和列索引起名

行索引起名: DataFrame.index.name = 'index_name'
列索引起名: DataFrame.columns.name = 'columns_name'

Pandas-DataFrame使用
Pandas-DataFrame使用

; 1.4 判断数据是否在DataFrame中

行索引判断:’name’ in frame.index
列索引判断:’name’ in frame.columns
数据值判断:’name’ in frame.values

若在则返回True,不在返回False

2.DataFrame数据处理

  • 删除数据但不改变原DataFrame,使用语句drop
    举例:

  • 删除列: frame.drop('state', axis=1)

    Pandas-DataFrame使用
  • 删除行: frame.drop('a')
    Pandas-DataFrame使用

; 2.1 DataFrame数据切片

有两种取数据的方法: loc[]iloc[]
frame:

Pandas-DataFrame使用

loc[]的取值方法是按DataFrame中行索引和列索引的名来进行取值,在数据量小时很好用

frame.loc['e':'f', 'state':'year']

Pandas-DataFrame使用

iloc[]的取值方法是按DataFrame中数据的具体位置进行索引;

frame.iloc[4:, :2]

Pandas-DataFrame使用

2.2 DataFrame数据运算

DataFrame与DataFrame之间的运算:

df1 = pd.DataFrame(np.arange(12.).reshape((3, 4)),columns=list('abcd'))
df2 = pd.DataFrame(np.arange(20.).reshape((4, 5)),columns=list('abcde'))

Pandas-DataFrame使用
Pandas-DataFrame使用
如果直接进行相加,会发现两个DataFrame所含有的行索引和列索引不一致,这会导致所相加后得到的DataFrame中会有NaN数据
df1.add(df2)

Pandas-DataFrame使用
加入参数fill_value=0,0会代替df1中缺少的部分进行相加
df1.add(df2, fill_value=0)

Pandas-DataFrame使用

将DataFrame中的数据都+1
创建一个一维数据Series,Series里的索引要对应DataFrame中列索引
s = pd.Series([1, 1, 1, 1], index=['a', 'b', 'c', 'd'])

Pandas-DataFrame使用
df1 + s
Pandas-DataFrame使用

Original: https://blog.csdn.net/weixin_44826986/article/details/125152458
Author: BunnyDuudu
Title: Pandas-DataFrame使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/741328/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 用python画个简易版圣诞树

    圣诞节快到了,用python中的pygame模块,画个简易版圣诞树。 PS:歌曲可以自己网上找下 Fabian Buch – Merry, Merry Christma…

    Python 2023年9月25日
    025
  • python实现一个加密的文字处理器

    这是一个类似于记事本的文字处理器。与正常的记事本不同的是,它会将文本文档进行加密,确保无法被常规的程序打开。 由于本人是一位业余编程爱好者,对于”python之禅&#8…

    Python 2023年11月2日
    046
  • 计算机科学(哈佛cs50)笔记汇总

    1 c语言 程序编译系统构成:预处理器、编译器、汇编器、连接器 代码执行的过程:源代码->编译器->汇编代码->汇编器->目标代码->连接器->…

    Python 2023年8月9日
    059
  • Mamba来了,Python conda加速神奇,体验飞一般的感觉

    如果你平日使用conda下载Python package、构建环境,明明设置了国内源,依旧很慢,很慢,很慢, 是不是很抓狂,有过类似经历,文末点个赞或在看。 本期介绍一个Pytho…

    Python 2023年9月7日
    063
  • 动态规划——0/1背包问题(全网最细+图文解析)

    ✨动态规划——0/1背包问题(全网最细+图文解析) 作者介绍: 🎓作者:青花瓷✨👀作者的Gitee:代码仓库📌系列文章推荐:✨1. 数据结构与算法—算法篇之动态规划(一)✨2. 【…

    Python 2023年10月27日
    035
  • seaborn小提琴图

    小提琴图 (Violin Plot)将核密度图和箱线图融合在一起,显示多组数据的分布状态以及概率密度。因图形酷似小提琴而得名。小提琴图不常用,但在一些高分文章中常出现她优雅的身影。…

    Python 2023年8月8日
    049
  • 测试之路 pytest接口自动化框架-yaml数据

    哈喽大家好,我是歪小王。上期内容我们说了requests与封装的好处。本期就接口自动化中另外一个重要成员–yaml数据,做一个简单介绍。 01 简介 yaml是一种文件…

    Python 2023年9月11日
    037
  • CARTOPY

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年9月1日
    053
  • Java多线程(4):ThreadLocal

    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 为了提高CPU的利用率,工程师们创造了多线程。但是线程们说:要有光!(为了减少线程创建(T1启动)和销毁(T3切换)的时间)…

    Python 2023年10月17日
    049
  • 低风险稳健策略:BTC套利策略

    更多精彩内容, 欢迎关注公众号:数量技术宅,也可添加技术宅 个人微信号:sljsz01,与我交流。 币安零手续费带来的机会 从7月8日的20点开始,币安推出了BTC现货交易零手续费…

    Python 2023年6月3日
    077
  • p6-三天的作业

    三天的作业,必须(录屏+水印)完成,逐一检查!! 点击登录按钮,实现POST请求到django后端,验证用户、密码通过后,生成token! 生成的jwt token必须自己使用ba…

    Python 2023年8月4日
    044
  • Django博文数据可视化、simple-ui优化、导入导出插件

    Django博文数据可视化、simple-ui优化、导入导出插件 今日任务 django博客admin优化 导入导出插件 DRF的action装饰器 博文数据可视化 昨日未解决问题…

    Python 2023年8月6日
    060
  • Pytest学习-yield后置

    Pytest学习-yield后置 原创 我的事说来话长2022-08-05 20:12:29博主文章分类:Pytest ©著作权 文章标签 pytest 文章分类 Python 后…

    Python 2023年5月24日
    076
  • 学习笔记:多模态

    1.多模态数据: 不同的存在形式或信息来源均可被称之为一种模态。由两种或两种以上模态组成的数据称之为多模态数据(多模态用来表示不同形态的数据形式,或者同种形态不同的格式,一般表示文…

    Python 2023年10月1日
    038
  • Python Pandas库简要学习

    一、Pandas 简述 Pandas 是 Python 语言的一个扩展程序库,用于数据分析。它并不是熊猫胖达的复数,它的名字衍生自术语 “panel data&#822…

    Python 2023年8月19日
    061
  • scrapy 大规模 mysql_SEO记录Scrapy的一些坑!

    最近曾庆平在搞一套抓自媒体的增量爬虫,包含UC、头条、百家、企鹅、搜狐、微信…..还有一些港台媒体,每天凌晨自动抓前一天的内容 规模较大,需求是最低成本的解决爬虫自动化…

    Python 2023年10月6日
    047
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球