Python数据攻略-DataFrame的创建与基础特性

大家好,我是Mr数据杨,今天我带来的是一本既实用又有趣的Python教程笔记,主角是Pandas DataFrame。它就像《三国演义》中的诸葛亮,机智、实用,可以帮助我们轻松处理各种数据问题。

我们来看如何创建诸葛亮——这个DataFrame。就像诸葛亮的才华一样多元,我们有多种方式创建DataFrame。比如,使用字典来创建,宛如使用木牛流马,巧妙利用已有的资源。使用列表创建,像诸葛亮运用锦囊妙计一样,将多个元素巧妙组合。使用NumPy数组创建,这就像诸葛亮借东风一样,借用强大的NumPy库的力量。还可以通过文件读取创建,就像诸葛亮拿到天书一样,轻松获取大量信息。

诸葛亮之所以称霸三国,是因为他能准确获取和处理信息。我们可以检索索引和数据,就像诸葛亮洞察战况,深谙敌我之情况。将索引视为序列,就如同诸葛亮的“连环计”,将数据有序联结。同时,DataFrame可以轻松地将数据转为NumPy数组,就像诸葛亮轻易地将战术转换为战斗力。

而DataFrame的数据类型,正如诸葛亮的智谋,多种多样,可以随需应变。最后,我们可以知晓DataFrame的大小,就如同诸葛亮深思熟虑,准确评估战况。

文章目录

  • Pandas DataFrame
  • 创建 DataFrame
    • 使用 Dict 创建
    • 使用 List 创建
    • 使用 NumPy 数组创建
    • 文件读取创建
  • 检索索引和数据
    • 索引作为序列
    • 数据转为 NumPy 数组
    • 数据类型
    • DataFrame 大小

Pandas DataFrame

Pandas DataFrame 是包含以二维、行和列组织的数据、对应于行和列的索引的数据结构。

使用字典的方式创建DataFrame。

import pandas as pddf = pd.read_excel("Romance of the Three Kingdoms 13/人物详情数据.xlsx")
df.head()

在这里插入图片描述
设定条件查询数据的前 N 行或者后 N 行内容。

df.head(2)

在这里插入图片描述

df.tail(2)

在这里插入图片描述

查看某列数据的话直接使用字典取值的方式获取即可。

name = df['名前']
name 0      阿会喃
1       韋昭
2       伊籍
3       尹賞
4      尹大目... 
852    卑弥呼
853    韓世忠
854    梁紅玉
855     范蠡
856     荀灌
Name: 名前, Length: 857, dtype: object

也可以像获取类实例的属性一样访问该列数据。

df.名前0      阿会喃
1       韋昭
2       伊籍
3       尹賞
4      尹大目... 
852    卑弥呼
853    韓世忠
854    梁紅玉
855     范蠡
856     荀灌
Name: 名前, Length: 857, dtype: object

Pandas DataFrame 的每一列都是一个 pandas.Series 实例,保存一维数据及其索引的结构。可以像使用字典一样获取对象的单个项目,Series 方法是使用其索引作为键。

name [10]
'袁胤'

可以使用 .loc[] 访问器访问整行数据。

df.loc[10]

在这里插入图片描述
label 对应的行10,其中包含对应行数据之外,还提取了相应列的索引,返回的行也是一个 pandas.Series 实例。

创建 DataFrame

分别使用不同的方式创建DataFrame,创建之前先要导入对应的三方库。

import numpy as np
import pandas as pd

使用 Dict 创建

data = {'x': [1, 2, 3], 'y': np.array([2, 4, 8]), 'z': 100}
pd.DataFrame(data)x  y    z
0  1  2  100
1  2  4  100
2  3  8  100

可以用 columns参数控制列的顺序,用index控制行索引的顺序。

pd.DataFrame(d, index=[100, 200, 300], columns=['z', 'y', 'x'])z  y  x
100  100  2  1
200  100  4  2
300  100  8  3

使用 List 创建

字典键是列索引,字典值是 DataFrame 中的数据值。

l = [{'x': 1, 'y': 2, 'z': 100},{'x': 2, 'y': 4, 'z': 100},{'x': 3, 'y': 8, 'z': 100}]pd.DataFrame(l)x  y    z
0  1  2  100
1  2  4  100
2  3  8  100

还可以使用嵌套列表或列表列表作为数据值,并且创建时需要指明行、列索引。元组和列表创建的方式相同

l = [[1, 2, 100],[2, 4, 100],[3, 8, 100]]pd.DataFrame(l, columns=['x', 'y', 'z'])x  y    z
0  1  2  100
1  2  4  100
2  3  8  100

使用 NumPy 数组创建

arr = np.array([[1, 2, 100],[2, 4, 100],[3, 8, 100]])df_ = pd.DataFrame(arr, columns=['x', 'y', 'z'])
df_x  y    z
0  1  2  100
1  2  4  100
2  3  8  100

文件读取创建

可以在多种文件类型(包括 CSV、Excel、SQL、JSON 等)中保存和加载Pandas DataFrame 中的数据和索引。

先将生成的数据保存到不同的文件中。

import pandas as pddata = {'名前': ['阿会喃', '韋昭', '伊籍', '尹賞', '尹大目'],'字': ['-', '弘嗣', '機伯', '-', '-'],'読み': ['-', 'コウシ', 'キハク', '-', '-'],'性別': ['男', '男', '男', '男', '男'],'生年': [190, 204, 162, 194, 211],'登場': [217, 223, 189, 213, 230],'没年': [225, 273, 226, 260, 270],'寿命': [36, 70, 65, 67, 60],'死因': ['不自然死', '不自然死', '自然死', '自然死', '自然死'],'父親': ['-', '-', '-', '-', '-'],'母親': ['-', '-', '-', '-', '-'],'相性': ['62', '131', '77', '72', '38'],'列伝': ['孟獲の配下。第三洞の元帥。\n【演義】諸葛亮の南蛮征圧で、張翼に襲撃されて捕らえられる。董荼那ともども、諸葛亮に解放されて心服するが、同じく解放されながらも服従しない孟獲の命で沙口の守備に派遣される。次の戦いで馬岱との対戦を避けた董荼那が孟獲に処罰されると、董荼那と結託して孟獲を捕らえ蜀軍に引き渡した。その後、再び釈放された孟獲が諸葛亮に心服したものと誤解し、孟獲に誘い出されて董荼那と共に殺された。\n【正史】記述なし。','呉の幕僚。正史では、司馬昭の名を避けて、韋曜と記される。\n【演義】記述なし。\n【正史】太子・孫和の命で「博奕論」を著し、博奕(すごろく)が益体のない遊びだと論じた。孫亮が即位すると諸葛恪に推薦され、薛瑩、華覈らと共に「呉書」の編集に当たる。しかし、孫晧が即位すると「呉書」の編集方針を巡って孫晧と対立。下戸だったがむりやり酒を飲まされ、態度が反抗的だとして処刑された。華覈とは親交が篤く、華覈は最後まで韋昭の助命嘆願に奔走した。','劉表の幕僚。後に劉備に仕える。\n【演義】劉表が劉備から贈られた的盧を返した時、的盧の凶相が乗り手に祟るという逸話を劉備に伝える。蔡瑁が劉備暗殺を測った時は劉備に危機を伝え逃亡させた。劉表が死に、後を継いだ劉琮が早々に降伏すると、劉備に仕え関羽と共に荊州を守る。荊州が呂蒙の攻撃を受けると馬良と共に救援要請のため成都に向かい、関羽が死ぬと成都に残った。その後、劉備に皇帝になるよう勧めた。\n【正史】使者としての機知、応対を孫権に感心された。諸葛亮、法正、劉巴、李厳らと蜀科(蜀の法律)を作った。','天水の武将。魏に仕えた後、蜀に降る。\n【演義】姜維の友人。諸葛亮が天水を攻めた時、先に蜀に降伏していた姜維と連絡を取り合う。蜀軍が攻め寄せると同僚の梁緒と謀って城門を開き、蜀軍を招き入れた。\n【正史】諸葛亮が天水を攻めた時、天水太守の馬遵から異心ありと疑われる。馬遵が逃走したため、姜維、梁虔、梁緒と共に降伏。蜀の滅亡前に死んだ。','大目は字。名は不詳。曹爽の腹心。\n【演義】曹爽が司馬懿に処刑された後、仇を討つために偽って司馬師の部下となる。友人の文欽が毌丘倹と共に反乱を起こした時、文欽に司馬師の死が近いことを知らせようとするが、その意図が伝わらず追い返された。\n【正史】少年の頃、曹氏の召使いとなり、そのまま皇帝の側に仕えた。'],'商業': [0, 1, 5, 0, 0],'農業': [0, 0, 4, 0, 1],'文化': [0, 0, 5, 0, 0],'訓練': [2, 0, 0, 0, 0],'巡察': [1, 0, 0, 0, 0],'説破': [0, 1, 5, 0, 0],'交渉': [0, 0, 5, 2, 0],'弁舌': [0, 0, 4, 1, 0],'人徳': [0, 0, 0, 0, 0],'威風': [0, 0, 0, 0, 0],'神速': [0, 0, 0, 0, 0],'奮戦': [1, 0, 0, 0, 0],'連戦': [0, 0, 0, 0, 0],'攻城': [0, 0, 0, 0, 0],'兵器': [0, 0, 0, 0, 0],'堅守': [0, 0, 0, 0, 0],'水連': [0, 0, 0, 0, 0],'一騎': [0, 0, 0, 0, 0],'豪傑': [0, 0, 0, 0, 0],'鬼謀': [0, 0, 0, 0, 0],'音声': ['無骨男', '丁寧男', '策士男', '丁寧男', '老獪男'],'武器': ['刀', '弓', '弓', '弓', '弓'],'性格': ['猪突', '豪胆', '冷静', '冷静', '小心'],'義理': ['普通', '重視', '重視', '普通', '普通'],'勇愛': ['重視', '普通', '軽視', '普通', '重視'],'才愛': ['軽視', '重視', '最重視', '重視', '重視'],'分類': ['武官', '文官', '文官', '文官', '文官'],'武具\n興味': ['なし', 'なし', 'なし', 'なし', 'なし'],'書物\n興味': ['なし', 'あり', 'あり', 'なし', 'なし'],'宝物\n興味': ['あり', 'なし', 'なし', 'あり', 'あり'],'酒\n興味': ['あり', 'なし', '普通', '普通', 'なし'],'物欲': ['強欲', '無欲', '無欲', '普通', '無欲']}columns_name = ['名前', '字', '読み', '性別', '生年', '登場', '没年', '寿命', '死因', '父親', '母親', '相性','列伝', '商業', '農業', '文化', '訓練', '巡察', '説破', '交渉', '弁舌', '人徳', '威風', '神速','奮戦', '連戦', '攻城', '兵器', '堅守', '水連', '一騎', '豪傑', '鬼謀', '音声', '武器', '性格','義理', '勇愛', '才愛', '分類', '武具\n興味', '書物\n興味', '宝物\n興味', '酒\n興味', '物欲'
]df = pd.DataFrame(data=data,columns=columns_name)df.to_csv('data.csv')
df.to_excel('data.xlsx')

检索索引和数据

创建 DataFrame 后可以进行一些检索、修改操作。

索引作为序列

df.index
RangeIndex(start=0, stop=5, step=1)df.columns
Index(['名前', '字', '読み', '性別', '生年', '登場', '没年', '寿命', '死因', '父親', '母親', '相性','列伝', '商業', '農業', '文化', '訓練', '巡察', '説破', '交渉', '弁舌', '人徳', '威風', '神速','奮戦', '連戦', '攻城', '兵器', '堅守', '水連', '一騎', '豪傑', '鬼謀', '音声', '武器', '性格','義理', '勇愛', '才愛', '分類', '武具\n興味', '書物\n興味', '宝物\n興味', '酒\n興味', '物欲'],dtype='object')df.columns[0]
'名前'

用序列修改索引。

df.index = np.arange(10, 15)df.index
Int64Index([10, 11, 12, 13, 14], dtype='int64')df

在这里插入图片描述

数据转为 NumPy 数组

转化之后取值方式同List操作。

df.to_numpy()array([['阿会喃', '-', '-', '男', 190, 217, 225, 36, '不自然死', '-', '-', '62','孟獲の配下。第三洞の元帥。\n【演義】諸葛亮の南蛮征圧で、張翼に襲撃されて捕らえられる。董荼那ともども、諸葛亮に解放されて心服するが、同じく解放されながらも服従しない孟獲の命で沙口の守備に派遣される。次の戦いで馬岱との対戦を避けた董荼那が孟獲に処罰されると、董荼那と結託して孟獲を捕らえ蜀軍に引き渡した。その後、再び釈放された孟獲が諸葛亮に心服したものと誤解し、孟獲に誘い出されて董荼那と共に殺された。\n【正史】記述なし。',0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,'無骨男', '刀', '猪突', '普通', '重視', '軽視', '武官', 'なし', 'なし', 'あり', 'あり','強欲'],......['尹大目', '-', '-', '男', 211, 230, 270, 60, '自然死', '-', '-', '38','大目は字。名は不詳。曹爽の腹心。\n【演義】曹爽が司馬懿に処刑された後、仇を討つために偽って司馬師の部下となる。友人の文欽が毌丘倹と共に反乱を起こした時、文欽に司馬師の死が近いことを知らせようとするが、その意図が伝わらず追い返された。\n【正史】少年の頃、曹氏の召使いとなり、そのまま皇帝の側に仕えた。',0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'老獪男', '弓', '小心', '普通', '重視', '重視', '文官', 'なし', 'なし', 'あり', 'なし','無欲']], dtype=object)

数据类型

数据值的类型,也称为数据类型或 dtypes,决定了 DataFrame 使用的内存量,以及计算速度和精度水平。

查看数据类型。

df.dtypes名前        objectobject
読み        object
性別        object
生年         int64
登場         int64
没年         int64
......dtype: object

使用.astype() 更改数据类型。

df_ = df.astype(dtype={'生年': np.int32, '没年': np.int32})df_.dtypes
名前        objectobject
読み        object
性別        object
生年         int32
登場         int64
没年         int32
......dtype: object

DataFrame 大小

.ndim.size.shape分别返回维度数、每个维度上的数据值数和数据值总数。

df_.ndim
2df_.shape
(5, 45)df_.size
225

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353000.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

linux学习之top命令详解

参考文章 https://blog.csdn.net/langzi6/article/details/124805024 top ​ 第一行:运行时长,负载 top - 10:04:54 up 474 days, 22:16, 2 users, load average: 2.07, 1.60, 0.94 top - 10:04:54:当前时间。 up 474 days, 22:16&#…

5年开发经验,看完这份37W字Java高性能架构,终于拿到架构师薪资

其实现在很多的开发人员并不能解决从架构的角度全方位地了解在Java编程过程中各阶段会出现的典型问题,更没办法深入到底层原理了解问题出现的原因! 且随着当下面试越来越深入到底层,如果大家对于底层的原理不了解的话,是很难做出…

学***-抓肉机

一、 学***,抓肉机---环境搭建篇 内容&#xff1a; 【1】***! 我们究竟需要怎样的环境&#xff1f;(可选择的环境->最大程度上利于***的环境) <a>可选择的操作系统&#xff1a; Windows NT/2000(Pro&Server&Advanced Server)/XP(Pro&Home)/2003/vista <…

1. 安全测试法规和专业术语介绍

网络安全法 《中华人民共和国网络安全法》是为保障网络安全&#xff0c;维护网络空间主权和国家安全、社会公共利益&#xff0c;保护公民、法人和其他组织的合法权益&#xff0c;促进经济社会信息化健康发展而制定的法律。 《中华人民共和国网络安全法》由中华人民共和国第十二…

暴力破解全攻略

1. 压缩文件的暴力破解(zip ,rar )。 2. excel加密文件的破解。 3. MSF对Metasploitable2-Linux的服务暴力破解。 (ftp,ssh,telnet,mysql,postgresql,vnc) 4. hydra工具暴力破解。 5. 使用Medusa暴力破解。 6. windows下3389,21,3306,5900爆破。 7. PkavHTTP Fuzze…

【黑客】入门路线及学习方法,工具小子起步,零基础可学,建议收藏

&#xff08;图片源于网络&#xff0c;侵删&#xff09; 分享一个【黑客】入门学习的路线及方法 1学习路线 1、【黑客】术语基础(学习一个月)&#xff1a;主要把一些常用【黑客】术语搞清楚&#xff0c;比如什么叫木马&#xff0c;什么叫病毒&#xff0c;什么叫肉鸡&#xf…

内网渗透工具

一、内网渗透常见知识讲解 网络环境问题&#xff1a; 内外网简单判断 内网渗透中常见的几个问题有哪些呢&#xff1f; 防火墙穿透、木马免杀穿透、内网信息收集及定位。 内网渗透的一些工具和平台 渗透测试平台类&#xff1a; Metasploit Cobalt Strike Empire empure…

软件测试面试怎样介绍自己的测试项目?会问到什么程度?

想知道面试时该怎样介绍测试项目&#xff1f;会问到什么程度&#xff1f;那就需要换位思考&#xff0c;思考HR在这个环节想知道什么。 HR在该环节普遍想获得的情报主要是下面这2个方面&#xff1a; 1&#xff09;应聘者的具体经验和技术能力&#xff0c; 2&#xff09;应聘者的…

深度学习基础知识-tf.keras实例:衣物图像多分类分类器

参考书籍&#xff1a;《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition (Aurelien Geron [Gron, Aurlien])》 本次使用的数据集是tf.keras.datasets.fashion_mnist&#xff0c;里面包含6w张图&#xff0c;涵盖10个分类。 import tensorflo…

国内顶尖团队的开源地址

open_source_team 项目地址&#xff1a;niezhiyang/open_source_team 简介&#xff1a;国内顶尖团队的开源地址 更多&#xff1a;作者 提 Bug 标签&#xff1a; 开源项目- 概述 想跟着大神走吗,想学习大神的步伐吗,想使自己的项目变得简单吗,那就看一看个大公司团…

产业互联网时代,公有云还受欢迎吗?

如今各行各业&#xff0c;言必称“产业互联网”&#xff0c;这既有国家政策层面的推动&#xff0c;又有互联网、传统企业转型的需要。而云计算则是“产业互联网”的底层驱动器。 在云计算的发展历史中&#xff0c;公有云曾主导整个市场&#xff1b;而在产业互联网时代&#xff…

详解自动化运维平台的构建过程

2013年&#xff0c;我加入了聚美优品&#xff0c;当时成都团队仅有四五个人&#xff0c;负责一些辅助系统的日常运维&#xff0c;比如查查日志等。随着公司规模逐渐的扩大&#xff0c;一些重要的业务往成都迁移&#xff0c;这对成都团队是一个非常大的挑战。业务部署最开始是手…

写了4年博客,我终于也出了一本书。

缘起 很多早期关注过我的朋友们或许知道&#xff0c;我是从2015年开始写博客的&#xff0c;到现在也坚持了4年多的时间。 最近看了一下自己的博客发文记录&#xff0c;共发表了369篇文章&#xff0c;平均每4天发表一篇。个人博客阅读量达到了300万&#xff0c;这还不算我发表到…

细节真的决定成败吗

肯定很多人都听过“细节决定成败”&#xff0c;百度百科的版本是这句话最初来自一个小故事“丢失了一个钉子&#xff0c;坏了一只蹄铁&#xff1b;坏了一只蹄铁&#xff0c;折了一匹战马&#xff1b;折了一匹战马&#xff0c;伤了一位国王&#xff1b;伤了一位国王&#xff0c;…

拼多多的正品险是个假保险?

假货&#xff0c;一直是萦绕在电商平台头顶上的噩梦。二十年来&#xff0c;无数电商平台在此折戟沉沙&#xff0c;比如红极一时的聚美优品&#xff0c;CEO陈欧如今靠直播吸引人气。 杜绝假货&#xff0c;就是电商平台的“珠穆朗玛峰”。十几年的坚持和努力&#xff0c;无数“假…

聚美优品云平台实践

当下Kubernetes事实上已成为容器届编排的标准&#xff0c;但对于围绕容器构建的周边生态却是各有千秋。聚美优品云平台项目从2017初开始调研到现在落地推广也有快两年的时间&#xff0c;虽然享受到了Kubernetes对容器标准化操作的红利&#xff0c;但实际上在推进过程中&#xf…

(0.50mm)TF31-4S-0.5SH 4 位置 FFC,FPC 连接器、G846A10221T4EU(1.0MM)矩形连接器 互连器件

TF31-4S-0.5SH &#xff08;0.50mm&#xff09;脚距前开盖式FFC/FPC连接器的安装深度为5.7mm&#xff0c;可最大限度地节省电路板空间&#xff0c;并能够自动放置电路板。Hirose Electric TF31连接器具有高FPC保持力&#xff08;采用FPC侧拉手设计&#xff09;&#xff0c;易于…

形容谣言的四字词语_形容谣言的四字成语

形容谣言的四字成语以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 1. 中国20世纪的一位大作家说的 是余秋雨“谈中国文化弊病”说的。 造谣无责,传谣无阻;中谣无助,辟谣无路;驳谣无效,破谣无趣;老谣方去,…

以太坊是匿名化的影子银行?将如何适应并影响传统金融?

以太坊经常被描述为传统金融权力的对立面。实际上&#xff0c;以太坊的目标并不是去颠覆传统金融领域&#xff0c;而试图去补充和改善它。未来&#xff0c;这两个系统将会有更多的交集。 多极世界中的中立性 以太坊并不是一种隐形的货币替代品和匿名的影子银行&#xff0c;目前…

四、初探[ElasticSearch]集群架构原理与搜索技术

目录 一、浅析Elasticsearch架构原理1.Elasticsearch的节点类型1.1 Master节点1.2DataNode节点 二、分片和副本机制2.1分片2.2副本2.3指定分片、副本数量2.4查看分片、主分片、副本分片 三、Elasticsearch工作流程3.1Elasticsearch文档写入原理3.2Elasticsearch检索原理 四、El…