pandas数据结构——DataFrame

本文详细介绍了pandas DataFrame的特性,包括如何创建DataFrame、设置和查询索引、数据修改、数据操作等内容。重点讲解了DataFrame的属性、通过列表、字典创建、索引修改方法如rename()和set_index(),以及数据修改如replace()和fillna()。此外,还涵盖了DataFrame的横竖表转换、数据运算和聚合函数的应用。
摘要由CSDN通过智能技术生成

DataFrame介绍

与Series不同,DataFrame是由一组数据与行、列索引组成的二维数据结构

DataFrame属性:

  • values:表格中值
  • columns:列索引
  • index:行索引
  • shape:形状

创建DataFrame

创建DataFrame的方法有很多,可以通过列表,元组,字典,外部导入等。

1. 列表、元组的传入

列表和元组传入方式基本一致。

  • 传入一列数据
    单列表传入:该列表的值会显示成一列,并且行、列索引均是从默认值0开始。
import pandas as pd
df1 = pd.DataFrame(['a','b','c'])
df1

# 返回值
	0
0	a
1	b
2	c
  • 传入多列数据
    嵌套列表传入:会根据嵌套列表显示成多列数据。嵌套的列表也可以换成元组。
df2 = pd.DataFrame ([['a','A'],['b','B'],['c','C']])
df2

# 返回值
    0	1
0	a	A
1	b	B
2	c	C

#改成元组后,具有相同的返回值
df3 = pd.DataFrame ((['a','A'],['b','B'],['c','C']))
df3

2. 字典的传入
传入一个字典时,字典的key值相当于列索引,如果不设置行索引,将依旧从0计数。

data = {
   '小写':['a','b','c'],'大写':['A','b','C']}
df3 = pd.DataFrame (data)
df3

# 返回

    小写  大写
0	a	A
1	b	b
2	c	C

行、列索引的设置、查询,切片

1. 设置行列索引

在DataFrame中可以使用index和columns来规定其索引值。

df4 = pd.DataFrame ((['a','A'],['b','B'],['c','C']),index = [1,2,3],columns =['小写','大写'])
df4

#返回值
  小写 大写
1	a	A
2	b	B
3	c	C

2. 查询行列索引

# 获取列索引
df4.columns  

# 返回
Index(['小写', '大写'], dtype='object')

#获取行索引
df4 .index

# 返回
Int64Index([1, 2, 3], dtype='int64')

3. 数据切片
DataFrame可以对行,列通过索引进行切片处理。

# 新建一个DataFrame
import pandas as pd
import  numpy as np
df5 = pd.DataFrame(np.arange(16).reshape((4,4)),index = [1,2,3,4],columns=['A','B','C','D'])
df5

# 返回

	A	B	C	D
1	0	1	2	3
2	4	5	6	7
3	8	9	10	11
4	12	13	14	15
  • 选取单列
    传入需要提取的列名
df5["A"]

# 返回
1     0
2     4
3     8
4    12
Name: A, dtype: int32
  • 选取多列
    将需要的列名,以列表的形式传入
df5[["A",'B']]

# 返回
	A	B
1	0	1
2	4	5
3	8	9
4	12	13
  • 选取单行
    传入所需行号
df5[2:3]

# 返回	
    A	B	C	D
3	8	9	10	11
  • 选取多行
    和选取单行方法一样(强迫症0.0)
df5[:3]

# 返回	

    A	B	C	D
1	0	1	2	3
2	4	5	6	7
3	8	9	10	11
  • 按条件选取行
    感觉这个方法只适用单列单条件情景,还是推荐使用pandas中的loc函数
df5[df5["A"]>5]

# 返回
	A	B	C	D
3	8	9	10	11
4	12	13	14	15

索引修改

  • 通过修改属性来修改索引
import  numpy as np
import pandas as pd
df6 = pd.DataFrame(np.arange(16).reshape((4,4)),index = list('abcd'),columns=['A','B','C','D'])

df6.columns = [1,2,3,4]		#修改列属性
df6.index = [1,2,3,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值