Pandas —— (1)基础数据结构概念和创建

摘要:
在Pandas中,大多数方法不会更改原始输入数据,而是复制数据并生成新对象。数据帧中的数据存储在一个或多个二维块中,Dataframe具有索引(行标签)和列(列标签)(不是列表、字典或一维数组结构。df1=pd.DataFramedf2=pd.Dataframe#与Series一样,您也可以自己设置参数值df1=pd。DataFramedf2=pd。Dataframe 3.2.2创建一个由Series data1={'one':pd.Series,'two':pd.Series}#Seriesdata2组成的字典,不设置索引={'one':pd.Series,'two':pd.Series}#Seriesdf1=pd。DataFramedf2=pd。带有索引集的DataFrame3.2.3直接创建ar=np。随机的兰特。形状(3,3)df2=pd。DataFrame#可以尝试索引或列的长度不等于现有数组的情况。奖励码字并不容易。如果对你有帮助,请奖励O(\\\\\\\\\\\\\\\

@

目录
一、Pandas简介

1.1 数据结构

在这里插入图片描述

1.2 大小可变与数据复制

  • Pandas 所有数据结构的值都是可变的,但数据结构的大小并非都是可变的,比如,Series 的长度不可改变,但 DataFrame 里就可以插入列。

  • Pandas 里,绝大多数方法都不改变原始的输入数据,而是复制数据,生成新的对象。 一般来说,原始输入数据不变更稳妥。

二、Series 数据结构

2.1 Series简介

Series 是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引

s = pd.Series(np.random.rand(5))
print(s)
print(type(s))
# 查看数据、数据类型

print(s.index,type(s.index))
print(s.values,type(s.values))
# .index查看series索引,类型为rangeindex
# .values查看series值,类型是ndarray

在这里插入图片描述

核心:series相比于ndarray,是一个自带索引index的数组 → 一维数组 + 对应索引
所以当只看series的值的时候,就是一个ndarray。 series和ndarray较相似,索引切片功能差别不大 series和dict相比,series更像一个有顺序的字典(dict本身不存在顺序),其索引原理与字典相似(一个用key,一个用index)

2.2 Series 创建方法

2.2.1 由字典创建

字典的key就是index,values就是values

dic = {'a':1 ,'b':2 , 'c':3, '4':4, '5':5}
s = pd.Series(dic)

2.2.2 由数组创建(一维数组)

arr = np.random.randn(5)
s = pd.Series(arr)
# 默认index是从0开始,步长为1的数字

# 也可以自己设置index,dtype和 name参数
s = pd.Series(arr, index = ['a','b','c','d','e'],dtype = np.object, name = 'test')
# index参数:设置index,长度保持一致
# dtype参数:设置数值类型
# name为Series的一个参数,创建一个数组的名称,格式为str,如果没用定义输出名称,输出为None

重命名

# .rename()重命名一个数组的名称,并且新指向一个数组,原数组不变
s2 = s.rename('hehehe')
三、Dataframe数据结构

3.1 Dataframe简介

"二维数组"Dataframe:是一个表格型的数据结构,“带有标签的二维数组”。包含一组有序的列,其列的值类型可以是数值、字符串、布尔值等。

Dataframe中的数据以一个或多个二维块存放,Dataframe带有index(行标签)和columns(列标签)(不是列表、字典或一维数组结构。)

data = {'name':['Jack','Tom','Mary'],
        'age':[18,19,20],
       'gender':['m','m','w']}
frame = pd.DataFrame(data)
print(frame'
该数据类型为:',type(frame))  # 查看数据,数据类型为dataframe
print(frame.index,'
该数据类型为:',type(frame.index))# .index查看行标签
print(frame.columns,'
该数据类型为:',type(frame.columns))# .index查看行标签
print(frame.values,'
该数据类型为:',type(frame.values))# .values查看值,数据类型为ndarray

在这里插入图片描述

# to_list()数据类型转换成列表
frame.index.to_list()
frame.columns.to_list()
frame.values.to_list()

3.2 Dataframe创建方法

3.2.1 由数组/list组成的字典创建

# 由数组/list组成的字典 创建Dataframe,columns为字典key,index为默认数字标签
# 字典的值的长度必须保持一致!
data1 = {'a':[1,2,3],
        'b':[3,4,5],
        'c':[5,6,7]}
data2 = {'one':np.random.rand(3),
        'two':np.random.rand(3)}   # 这里如果尝试  'two':np.random.rand(4) 会怎么样?
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# 和Series一样也可以自己设置参数值
df1 = pd.DataFrame(data1, columns = ['b','c','a','d'])
df2 = pd.DataFrame(data2, index = ['f1','f2','f3'])

3.2.2 由Series组成的字典创建

data1 = {'one':pd.Series(np.random.rand(2)),
        'two':pd.Series(np.random.rand(3))}  # 没有设置index的Series
data2 = {'one':pd.Series(np.random.rand(2), index = ['a','b']),
        'two':pd.Series(np.random.rand(3),index = ['a','b','c'])}  # 设置了index的Series
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

3.2.3 通过二维数组直接创建

ar = np.random.rand(9).reshape(3,3)
df2 = pd.DataFrame(ar, index = ['a', 'b', 'c'], columns = ['one','two','three'])  # 可以尝试一下index或columns长度不等于已有数组的情况
打赏

码字不易,如果对您有帮助,就打赏一下吧O(∩_∩)O
Pandas —— (1)基础数据结构概念和创建第4张
Pandas —— (1)基础数据结构概念和创建第5张

免责声明:文章转载自《Pandas —— (1)基础数据结构概念和创建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇FineRport 工作用delphi函数调用约定下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在JS中使用RecordSet对象的GetRows方法

写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,比用VBScript有一些小小的不方便,比如RecordSet的GetRows方法。 在ASP中操作数据库,一般都要用到RecordSet对象,如果注重程序效率的话,可能就会用到RecordSet对象的GetRows方...

JSON格式要求

标准JSON的合法符号:{(左大括号) }(右大括号) "(双引号) :(冒号) ,(逗号) [(左中括号) ](右中括号) 注:JSON必须使用双引号,不能使用单引号 标准JSON的合法符号:{(左大括号) }(右大括号) "(双引号) :(冒号) ,(逗号) [(左中括号) ](右中括号) JSON字符串:特殊字符可在字符前面加 或使用 u 加 4位1...

MongoDB(12)- 查询嵌入文档的数组

插入测试数据 db.inventory.insertMany( [ { item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 } ] }, { item: "notebook", instock: [ { warehouse: "C",...

NPOI操作Excel(三)--解析Excel

通过前面两篇的基础学习,我们对NPOI有了一定了了解,下面就开始进入实战,解析下面格式的Excel(下面只是列举了几个例子),并保存入库 首先我们先分析一下,要解析这样的Excel,需要把指标【橘色背景和蓝色背景】(作为指标入库)、科目【棕色背景和黄色背景】(作为X轴入库)、数据【乳白色背景和白色背景】(作为Y轴入库)的数据分开入库。 第一张图我们得到的...

[GXYCTF2019]禁止套娃

拿到这道题,抓包看了看,啥也没有,考虑用dirsearch爆破目录,未果,忍不住看了下大佬的wp,原来是./git源码泄露,当然这并没有完,精彩的还在后面呢,我们来看一下这道题 前言本题主要用到5个函数 1.localeconv() 返回一包含本地数字及货币格式信息的数组。而数组第一项就是. 2.current() 返回数组中的当前单元, 默认取第一个值。...

Java内存优化和性能优化的几点建议

1.没有必要时请不用使用静态变量     使用Java的开发者都知道,当某个对象被定义为stataic变量所引用,这个对象所占有的内存将不会被回收。有时,开发者会将经常调用的对象或者变量定义为static,以便提高程序的运行性能。因此,不是常用到的对象或者变量,不要定义为static类型的变量,尤其是静态类对象的定义,一定要仔细考虑是否有必要。例如  ...