文章目录
*
– 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的数据结构
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/
转载文章受原作者版权保护。转载请注明原作者出处!