DataFrame(1):DataFrame结构的详细介绍

举报
yd_226342373 发表于 2021/05/25 04:24:41 2021/05/25
【摘要】 1、DataFrame数据结构的解释说明   index表示的是行索引,column表示的是列索引,values表示的是数值,其实不管是行索引,还是列索引都可以看作是索引Index。从每一行看,DataFrame可以看作是一行行的Series序列上下堆积起来的,每个Series的索引就是列索引[0,1,2,3];从每一列看,DataFrame可以看作是一列列的Ser...

1、DataFrame数据结构的解释说明

在这里插入图片描述
  index表示的是行索引,column表示的是列索引,values表示的是数值,其实不管是行索引,还是列索引都可以看作是索引Index。从每一行看,DataFrame可以看作是一行行的Series序列上下堆积起来的,每个Series的索引就是列索引[0,1,2,3];从每一列看,DataFrame可以看作是一列列的Series序列左右堆积起来的,每个Series的索引就是行索引[0,1,2]。
  DataFrame的默认理解方式是:DataFrame其实就是由很多个数据类型不一样的列Series组成。对于上图,此DataFrame其实就是由如下四个Series组成,它们的索引都是行索引[0,1,2]。
在这里插入图片描述
  可以把一个DataFrame,类比成MySQL中的一张表:
  MySQL表中,每个列字段的数据类型基本都不一样,每张表都有很多个列字段;
  如果把MySQL表中的每个列看做是一个数据类型的Series,一张MySQL表就可以看做是由很多个数据类型不一样的Series组成,和我们上面讲述的一致。

2、DataFrame的index属性和columns属性

1)构造一个DataFrame
import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randint(70,100,(3,5)), index=["地区1", "地区2", "地区3"], columns=["北京","天津", "上海","沈阳", "广州"])
display(df)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果如下:
在这里插入图片描述

2)index和columns属性
df = pd.DataFrame(np.random.randint(70,100,(3,5)), index=["地区1", "地区2", "地区3"], columns=["北京","天津", "上海","沈阳", "广州"])
display(df)

x = df.index
display(x)
list(df.index)

y = df.columns
display(y)
list(df.columns)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

结果如下:
在这里插入图片描述

① 修改行索引:df.index
df = pd.DataFrame(np.random.randint(70,100,(3,5)), index=["地区1", "地区2", "地区3"], columns=["北京","天津", "上海","沈阳", "广州"])
display(df)

df.index = ["a","b","c"]
display(df)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果如下:
在这里插入图片描述

② 修改列索引:df.columns
df = pd.DataFrame(np.random.randint(70,100,(3,5)), index=["地区1", "地区2", "地区3"], columns=["北京","天津", "上海","沈阳", "广州"])
display(df)

df.columns = ["a","b","c"]
display(df)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果如下:
在这里插入图片描述

3)DataFrame的索引对象Index

  观察“DataFrame的数据结构图”可以发现:每个df既有一个行索引index,又有一个列索引columns。但是不管行索引index,还是列索引columns,统一都都叫做 “Index对象”。不同的是在创建df,指定参数的参数名称的时候,为了方便区分行索引和列索引 ,把行索引这个“Index对象”叫做index,把列索引这个“Index对象”叫做columns 。
  记住:Index索引对象中的元素不支持修改。

# pd.Index()用于创建一个Index对象
x = pd.Index([1,2,3])
display(x)
display(type(x))

x[0] = 1

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

结果如下:
在这里插入图片描述

3、name属性

1)怎么理解DataFrame的name属性

在这里插入图片描述
  我们知道:取出DataFrame中的每一行、每一列都是一个Series,组成这个DataFrame对象的每个sereis都有一个名称,这个名称,就是对应的那一行、列的索引。如图所示 ,上述有“红橙黄绿蓝靛紫黑”八种颜色,分别编号为1-8,每个号对应的都是一个Series。Series1的name为“地区1”,Series2的name为“地区2”…Series8的name为“广州”。
  接下来,我们使用代码检验一下。

df = pd.DataFrame(np.random.randint(70,100,(3,5)), index=["地区1", "地区2", "地区3"], columns=["北京","天津", "上海","沈阳", "广州"])
display(df)

df.loc["地区1"].name
df.loc["地区2"].name
......
df["广州"].name

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果如下:
在这里插入图片描述

2)为行索引、列索引设置name名称属性:df.index.name和df.columns.name
df = pd.DataFrame(np.random.randint(70,100,(3,5)), index=["地区1", "地区2", "地区3"], columns=["北京","天津", "上海","沈阳", "广州"])
display(df)

df.index.name = "index_name"
df.columns.name = "columns_name"
display(df)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果如下:
在这里插入图片描述
综上所述:通过上面的演示,我们不仅DataFrame的每一行、每一列有一个name名称,并且我们还可以给DataFrame的行索引和列索引分别设置一个name名称。

文章来源: blog.csdn.net,作者:数据分析与统计学之美,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41261833/article/details/104162585

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。