数据分析与可视化(四)Pandas学习基础一:统计分析基础

文章目录

*
1. pandas的数据结构

+
* series:一维数组对象,通过索引来访问
* DataFrame:有一组有序的列,表格型的数据结构
* 索引对象
* 查看DataFrame的常用属性
2.Pandas的索引操作

+
*
重建索引

+ 1.重建索引
+ 3.reindex操作
更换索引
3.DataFrame数据的查询和编辑

+
*
查询【一般都是通过索引来操作的】

+ 1.选取列
+ 2.选取行
+ 3.读取行和列
+ 4.布尔选择
编辑【提取需要编辑的数据,重新赋值】

+ 1.增加数据
+ 2.删除数据
+ 3.修改数据
4.pandas数据运算

+
*

+ 算术运算
+ 函数的应用和映射
+ 排序
+ 统计汇总
5.数据分组与聚合

+
*

+ 数据分组
+ 数据聚合:对分组后的数据进行计算,产生标量值的数据转换过程。
+ 分组运算:包含聚合运算,聚合运算是数据转换的特例。
重要技巧: groupby之后直接.reset_index()可以得到一个没有多级索引的DataFram,之后可以通过df.rename({'old_col1':'new_col1','old_col2':'new_col2',...})重命名
6.数据透视表

+
*

+ 透视表
+ 交叉表:是一种特殊的透视表,主要用于计算分组频率。使用Pandas提供的crosstab函数可以制作。
7.Pandas可视化

+
*

+ 线形图
+ 柱状图
+ 直方图和密度图
+ 散点图

1. pandas的数据结构

数据分析与可视化(四)Pandas学习基础一:统计分析基础
Series:类似于数组
DataFrame:类似于表格
Panel:Excel多表单Sheet【不常用】

series:一维数组对象,通过索引来访问

1.创建:可通过列表和字典来创建

import pandas as pd
import numpy as np
s1 = pd.Series([1,4,'ab',0])
s2 = pd.Series({'A':'111', 'B':'你好', 'C':'345'})
print(s1,'\t',s2)

0     1
1     4
2    ab
3     0
dtype: object    A    111
B     你好
C    345
dtype: object

2.索引

(1)列表建立Series对象时,没有指定index,会自己生成整数型索引,可用使用索引切片技术;指定index时,Series会有两种描述某数据的手段,自己生成的整数位置索引和建立Series对象时给定的index索引(标签);dtype用来给定数据类型。

import pandas as pd
list1 = [1,3,5,7]
s1 = pd.Series(list1, index=['a1', 'b1', 'c1', 'd1'], dtype='object')
print('s1 index索引取值',s1['a1'])
print('s1 位置取值',s1[0])

s1 index索引取值 1
s1 位置取值 1

(2)字典建立Series对象时,不指定index,默认会用字典键有序排列来做索引;指定index时,如果键值与指定的index不匹配,会生成NaN(非数字);给定的index索引可用通过赋值方式修改

import pandas as pd
dic = {
        'a':'中国',
        'b':'日本',
        'd':'美国'
}
s = pd.Series(dic, index=['a', 'b', 'c', 'd'])
print(s)

s.index = ['A', 'B', 'C','D']

a     中国
b     日本
c    NaN
d     美国
dtype: object
修改index: A     中国
B     日本
C    NaN
D     美国
dtype: object

DataFrame:有一组有序的列,表格型的数据结构

1.创建:最常用的是直接传入一个由等长列表或者NumPy数组组成的字典来形成DataFrame。

2.特性:会自动加上索引,且全部列会被有序排列,如果columns指定列名序列,则按指定列名排列;index给出行标签;如果传入的列在数据中找不到,会产生NaN值。

data = {
    'name':['张飞', '孙尚香', '韩信', '貂蝉', '马超'],
    'location':['游走', '下路', '打野', '中单', '上单'],
    'dynasty':['蜀', '蜀', '战国', '汉', '蜀'],
    'year':[1999, 2000, 2020, 2050, 3030]
}
df = pd.DataFrame(data)
print(df)

  name location dynasty  year
0   张飞       游走       蜀  1999
1  孙尚香       下路       蜀  2000
2   韩信       打野      战国  2020
3   貂蝉       中单       汉  2050
4   马超       上单       蜀  3030
df = pd.DataFrame(data, columns=['name','location','dynasty','address','year'],index=['a','b','c','d','e'])
print(df)

  name location dynasty address  year
a   张飞       游走       蜀     NaN  1999
b  孙尚香       下路       蜀     NaN  2000
c   韩信       打野      战国     NaN  2020
d   貂蝉       中单       汉     NaN  2050
e   马超       上单       蜀     NaN  3030

索引对象

1.pandas的索引对象负责管理轴标签和其它元数据信息(例如轴名称等),构建Series和DataFrame时,所用到的任何数组或其它序列的标签,都会被转换成一个Index。

print(df.index)
print(df.columns)

Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
Index(['name', 'location', 'dynasty', 'address', 'year'], dtype='object')

2.Index长的像数组,功能类似于一个固定大小的集合。不可修改保证Index在多个数据结构间的安全共享。

print('name' in df.columns)
df.index=['1','2','3','4','5']
df.columns=['a','b','c','d','e']
print(df)

True
     a   b   c    d     e
1   张飞  游走   蜀  NaN  1999
2  孙尚香  下路   蜀  NaN  2000
3   韩信  打野  战国  NaN  2020
4   貂蝉  中单   汉  NaN  2050
5   马超  上单   蜀  NaN  3030

3.索引的方法和属性

方法属性append连接另一个Index对象,产生一个新的Index对象diff计算差集并得到一个Indexintersection计算交集union计算并集isin计算一个指示各值是否都包含在参数集合中的布尔型数组delete删除索引i处的元素,并得到新的Indexdrop删除传入的值,并得到新的Indexinsert将元素插入索引i处,并得到新的索引is_monotonic当各元素均大于或等于前一个元素时,返回Trueis.unique当Index没有重复值时,返回Trueunique计算Index中唯一值的数组

df.index.insert(1,'w')

Index(['1', 'w', '2', '3', '4', '5'], dtype='object')

查看DataFrame的常用属性

属性描述values元素,返回二维嵌套列表index索引,返回Indexcolumns列名dtypes类型ndim维度shape形状size元素的个数

`python
print(df)
print(“————–“)
print(df.values())
print(“————–“)
print(df.index())
print(“————–“)
print(df.columns())
print(“————–“)
print(df.dtypes())
print(“————–“)
print(df.ndim())
print(“————–“)
print(df.shape())
print(“————–“)
print(df.size())

a   b   c    d     e

1 张飞 游走 蜀 NaN 1999
2 孙尚香 下路 蜀 NaN 2000
3 韩信 打野 战国 NaN 2020
4 貂蝉 中单 汉 NaN 2050
5 马超 上单 蜀 NaN 3030
Index([‘1’, ‘2’, ‘3’, ‘4’, ‘5’], dtype=’object’)
a object
b object
c object
d object
e int64
dtype: object
(5, 5)

Original: https://blog.csdn.net/qq_43636709/article/details/115536906
Author: bigdata7
Title: 数据分析与可视化(四)Pandas学习基础一:统计分析基础

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/754730/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球