python数据分析-Pandas数据结构(1)

本文介绍了Pandas库中Series和DataFrame的基本操作,包括创建、指定索引、获取数据和索引等,适合Python数据分析初学者。

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

声明:此文只是对《对比excel,轻松学习python数据分析》这本书的读书笔记,文章中的代码均来源于书中,仅以知识分享为用途,后续我会继续支持作者,也会继续读完这本书,如有侵权,请留言我删除

pandas数据结构

Series数据结构

  • 需要导入的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
  • 什么是Series数据结构
0    a
1    b
2    c
3    d
dtype: object

Series是一种类似于一维数组的对象,由一组数据及一组数据与之相关的数据标签组成,像上面的这种数据结构就是Series,第一列数字是数据标签,第二列是具体的数据,数据标签与数据一一对应

  • 创建一个Series
# 利用pandas的Series()方法创建
S1 = pd.Series(['a', 'b', 'c', 'd'])
print(S1)

0    a
1    b
2    c
3    d
dtype: object

如果只是传入一个列表不指定数据标签,那么Series会默认使用从0开始的数做数据标签,上面的0.1.2.3就是默认的数据标签

  • 指定索引

直接传入一个列表会使用默认索引,也可以通过设置index参数来自定义索引

S1 = pd.Series([1, 2, 3, 4])     # 创建序列
S1.index = ['a', 'b', 'c', 'd']  # 通过index方法指定索引
print(S1)

a    1
b    2
c    3
d    4
dtype: int64
  • 传入一个字典

也可以将数据与数据标签以key,value的形式传入,这样字典里的key就是数据标签,value就是数据值

dic = {'a1': 1, 'b2': 2, 'c3': 3, 'd4': 4}
s1 = pd.Series(dic)
print(s1)

a1    1
b2    2
c3    3
d4    4
dtype: int64
  • 利用index方法获取Series的索引

获取一组数据的索引:利用index方法就可以获取Series的索引值

S1 = pd.Series(['a', 'b', 'c', 'd'])
print(S1.index)
RangeIndex(start=0, stop=4, step=1)  # 连续数字提示起止位置及步长

dic = {'a1': 1, 'b2': 2, 'c3': 3, 'd4': 4}
s1 = pd.Series(dic)
print(s1.index)
Index(['a1', 'b2', 'c3', 'd4'], dtype='object')  # 自定义索引显示索引值
  • 利用values方法获取Series的值

与索引值对应的就是获取Series的值,使用values方法

S1 = pd.Series(['a', 'b', 'c', 'd'])
print(S1.index)
[1 2 3 4]

dic = {'a1': 1, 'b2': 2, 'c3': 3, 'd4': 4}
s1 = pd.Series(dic)
print(s1.index)
['a' 'b' 'c' 'd']

DataFrame 表格型数据结构

DateFrame是什么

Series是由一组数据与一组索引组成的数据结构,而DateFrame是由一组数据与一对索引组成的表格型数据结构

创建一个DateFrame

  • 传入一个列表
df1 = pd.DataFrame(['a', 'b', 'c', 'd'])
print(df1)

   0
0  a
1  b
2  c
3  d

这里只传入了一个单一的列表,该列表的值就会显示成一列,且行和列都是从0开始的默认索引

  • 传入一个嵌套列表
df2 = pd.DataFrame([['a', 'A'], ['b', 'B'], ['c', 'C'], ['d', 'D']])
print(df2)

   0  1
0  a  A
1  b  B
2  c  C
3  d  D

当传入一个嵌套列表时,会根据嵌套列表数显示成多列数据,行,列索引同样是从0开始的,列表里嵌套的列表也可以换成元组

df2 = pd.DataFrame([('a', 'A'), ('b', 'B'), ('c', 'C'), ('d', 'D')])
print(df2)

   0  1
0  a  A
1  b  B
2  c  C
3  d  D

  • 指定行,列索引

DateFrame()方法的行,列索引都是默认的,通过设置columns参数自定义列索引

# 设置列索引
df31 = pd.DataFrame([('a', 'A'), ('b', 'B'), ('c', 'C'), ('d', 'D')], columns=['小写', '大写'])
print(df31)

  小写 大写
0  a  A
1  b  B
2  c  C
3  d  D

# 设置行索引
df32 = pd.DataFrame([('a', 'A'), ('b', 'B'), ('c', 'C'), ('d', 'D')], index=['一', '二', '三', '四'])
print(df32)

   0  1
一  a  A
二  b  B
三  c  C
四  d  D
  • 传入一个字典
date = {'小写': ['a', 'b', 'c', 'd'], '大写': ['A', 'B', 'C', 'D']}
df41 = pd.DataFrame(date)
print(df41)

  小写 大写
0  a  A
1  b  B
2  c  C
3  d  D

直接以字典的形式传入DateFrame时,字典的key值就相当于列索引,如果没有设置行索引,行索引默认还是从0开始,同时我们也可以设置行索引

date = {'小写': ['a', 'b', 'c', 'd'], '大写': ['A', 'B', 'C', 'D']}
df42 = pd.DataFrame(date, index=['一', '二', '三', '四'])
print(df42)

  小写 大写
一  a  A
二  b  B
三  c  C
四  d  D

获取DateFrame的行,列索引

# 前例代码
df2 = pd.DataFrame([['a', 'A'], ['b', 'B'], ['c', 'C'], ['d', 'D']])
df3 = pd.DataFrame([('a', 'A'), ('b', 'B'), ('c', 'C'), ('d', 'D')], index=['一', '二', '三', '四'],
                  columns=['小写', '大写'])
# 用columns方法获取列索引
print(df2.columns)
RangeIndex(start=0, stop=2, step=1)
print(df3.columns)
Index(['小写', '大写'], dtype='object')
# 用index方法获取行索引
print(df2.index)
RangeIndex(start=0, stop=4, step=1)
print(df3.index)
Index(['一', '二', '三', '四'], dtype='object')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值