03 -1 pandas 中 DataFrame理解与创建、索引、运算的详解以及实例

本文详细介绍了pandas DataFrame的数据结构,包括如何创建DataFrame、行和列的索引以及各种运算操作。DataFrame是表格型数据结构,可以看作由Series组成的字典,具备行索引和列索引。文章还涵盖了DataFrame的创建方法、索引技巧(列索引、行索引、元素索引)以及与数值、其他DataFrame和Series的运算。同时,文章提供了多个实践练习,帮助读者巩固所学知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DataFrame

DataFrame是一个【表格型】的数据结构,可以看做是【由Series组成的字典】(共用同一个索引)。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。

  • 行索引:index 代表样本
  • 列索引:columns 代表维度
  • 值:values(numpy的二维数组)
1)DataFrame的创建

最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。

此外,DataFrame会自动加上每一行的索引(和Series一样)。

同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。

DataFrame的创建
import numpy as np
import pandas as pd
from pandas import Series,DataFrame

通过 DateFrame 函数 创建

df = DataFrame([1,2,3,4])
结果为:
	0
0	1
1	2
2	3
3	4
df = DataFrame([1,2,3,4],index=list("abcd"))
结果为:

	0
a	1
b	2
c	3
d	4
data = np.random.randint(0,150,size=(4,4))
index = ["张三","李四","王五","赵柳"]
columns = ["Math","Chinese","English","Python"]
df = DataFrame(data,index=index,columns=columns)
df
结果为:如下表
Math Chinese English Python
张三 10 145 15 11
李四 125 97 71 130
王五 149 79 149 67
赵柳 133 26 135 70

DataFrame属性:values、columns、index、shape

df.values #所有的值
结果为:
array([[ 10, 145,  15,  11],
       [125,  97,  71, 130],
       [149,  79, 149,  67],
       [133,  26, 135,  70]])
df.columns # 每一列的标题
结果为:
Index(['Math', 'Chinese', 'English', 'Python'], dtype='object')
df.index #每一行的标题
结果为:
Index(['张三', '李四', '王五', '赵柳'], dtype='object')
df.shape
结果为:
(4, 4)

============================================

练习4:

根据以下考试成绩表,创建一个DataFrame,命名为df:

    张三  李四
语文 150  0
数学 150  0
英语 150  0
理综 300  0

============================================

data = [[150,0],[150,0],[150,0],[150,0]]
index = ["语文","数学","英语","理综"]
columns = ["张三","李四"]
DataFrame(data=data,index=index,columns=columns)
张三 李四
语文 150 0
数学 150 0
英语 150 0
理综 150 0
2)DataFrame的索引

(1) 对列进行索引

- 通过类似字典的方式
- 通过属性的方式

可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名。

每一行是一个样本 每一列是描述这个样本的维度

df
<
Math Chinese English Python
张三 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值