栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021-10-17 Python数据分析学习(二)——如何从Series和DataFrame中取值

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-17 Python数据分析学习(二)——如何从Series和DataFrame中取值

Python数据分析学习(二) 1. Series的取值 1.1 values
from pandas import Series
emp = ['001','002','003']
name = ['王者','青铜','黑铁']
se = Series(data=name,index=emp)
print(se)
print(se.values)

运行结果:

001    王者
002    青铜
003    黑铁
dtype: object
['王者' '青铜' '黑铁']

values获取数据的值,返回list类型

1.2 index
print(se.index)

运行结果:

Index(['001', '002', '003'], dtype='object')

index获取索引的值,返回index类型
to_list进行转换成列表

print(se.index.to_list())

运行结果:

['001', '002', '003']
1.3 items
print(se.items())

运行结果:


items获取每对索引和值,返回zip类型
使用list()转换成列表

print(list(se.items()))

运行结果:

[('001', '王者'), ('002', '青铜'), ('003', '黑铁')]
1.4 使用下标取值 1.4.1 标签索引下标
print(se[['001','003']])

运行结果:

001    王者
003    黑铁
dtype: object
1.4.2 位置索引下标
print(se[[0,2]])

运行结果:

001    王者
003    黑铁
dtype: object
1.5 使用切片取值 1.5.1 标签索引切片

切片的语法:
[起始位置:结束位置:步长]

print(se['002':'003'])

运行结果:

002    青铜
003    黑铁
dtype: object
1.5.2 位置索引切片
print(se[1:3])

运行结果:

002    青铜
003    黑铁
dtype: object
1.6 遍历 1.6.1 遍历值
for value in se:
    print(value)

运行结果:

王者
青铜
黑铁
1.6.2 遍历索引
for value in se.keys():
    print(value)

运行结果:

001
002
003
1.6.3 遍历每对索引和值
for value in se.items():
    print(value)

运行结果:

('001', '王者')
('002', '青铜')
('003', '黑铁')
2. Dataframe的取值
from pandas import Dataframe
dic = {
    'name':['张三','李四','王五','赵六'],
    'age':[10,20,30,40],
    'action':['衣','食','住','行']
}
df = Dataframe(data=dic,index=['A','B','C','D'])
print(df)

运行结果:

  name  age action
A   张三   10      衣
B   李四   20      食
C   王五   30      住
D   赵六   40      行
2.1 查询维度
print(df.ndim)

运行结果:

2
2.2 获取行数与列数
print(df.shape)

运行结果:

(4, 3)
2.3 获取行索引列表
print(df.index.to_list())

运行结果:

['A', 'B', 'C', 'D']
2.4 获取前几行和后几行
print(df.head(3))
print(df.tail(3))

运行结果:

  name  age action
A   张三   10      衣
B   李四   20      食
C   王五   30      住
  name  age action
B   李四   20      食
C   王五   30      住
D   赵六   40      行
2.5 获取列索引列表
print(df.columns.to_list())

运行结果:

['name', 'age', 'action']
2.6 切片(和Series差不多,这里只随便举点例子) 2.6.1 获取多行
print(df[1:3])

运行结果:

  name  age action
B   李四   20      食
C   王五   30      住
2.6.2 获取多列
print(df[['name','action']])

运行结果:

  name action
A   张三      衣
B   李四      食
C   王五      住
D   赵六      行

获取单列

print(df['action'])

运行结果:

A    衣
B    食
C    住
D    行
Name: action, dtype: object

以此类推,获取多行多列
df[1:3][['name','action']]
这里不再赘述

2.7 标签索引筛选 2.7.1 某一行某一列
print(df.loc['C','name'])

运行结果:

王五
2.7.2 某一行多列
print(df.loc['D',['age','action']])
print(df.loc['D'])

运行结果:

age       40
action     行
Name: D, dtype: object

name      赵六
age       40
action     行
Name: D, dtype: object
2.7.3 有间隔的多行多列
print(df.loc[['B','D'],['name','action']])

运行结果:

  name action
B   李四      食
D   赵六      行
2.7.4 连续的多行多列
print(df.loc['A':'C','name':'age'])

运行结果:

  name  age
A   张三   10
B   李四   20
C   王五   30
2.8 位置索引筛选 2.8.1 单行筛选
print(df.iloc[2])

运行结果:

name      王五
age       30
action     住
Name: C, dtype: object
2.8.2 间断筛选
print(df.iloc[[1,3]])

运行结果:

  name  age action
B   李四   20      食
D   赵六   40      行
2.8.3 连续筛选
print(df.iloc[1:4])

运行结果:

  name  age action
B   李四   20      食
C   王五   30      住
D   赵六   40      行
2.9 遍历 2.9.1 按行遍历,将Dataframe的每一行转化为(index,Series)对
for data in df.iterrows():
    print(data)
for index,row_data in df.iterrows():
    print(index)
for index,row_data in df.iterrows():
    print(row_data)

运行结果:

('A', name      张三
age       10
action     衣
Name: A, dtype: object)
('B', name      李四
age       20
action     食
Name: B, dtype: object)
('C', name      王五
age       30
action     住
Name: C, dtype: object)
('D', name      赵六
age       40
action     行
Name: D, dtype: object)
A
B
C
D
name      张三
age       10
action     衣
Name: A, dtype: object
name      李四
age       20
action     食
Name: B, dtype: object
name      王五
age       30
action     住
Name: C, dtype: object
name      赵六
age       40
action     行
Name: D, dtype: object
2.9.1 按列遍历,将Dataframe的每一行转化为(column,Series)对
for data in df.iterrows():
    print(data)
for column,col_data in df.iteritems():
    print(column)
for column,col_data in df.iteritems():
    print(col_data)

运行结果:

('A', name      张三
age       10
action     衣
Name: A, dtype: object)
('B', name      李四
age       20
action     食
Name: B, dtype: object)
('C', name      王五
age       30
action     住
Name: C, dtype: object)
('D', name      赵六
age       40
action     行
Name: D, dtype: object)
name
age
action
A    张三
B    李四
C    王五
D    赵六
Name: name, dtype: object
A    10
B    20
C    30
D    40
Name: age, dtype: int64
A    衣
B    食
C    住
D    行
Name: action, dtype: object
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329472.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号