马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1.什么是pandas
同样,pandas、matplotlib、numpy是python三大库,pandas就像是把matplotlib和numpy结合在一起,让数据以“表格”的情势体现出来,是一个强盛的数据处置惩罚和分析库,它建立在NumPy库之上,提供了高效地操纵大型数据集所需的数据结构和操纵。
2.pandas库的引入
import pandas as pd
3.pandas 的数据结构
pandas主要有 Series、DataFrame、MutiIndex/panel三大结构
Series:一位数据结构
DataFrame:二维表格型数据结构
MultiIndex/panel:三维数据结构
Ⅰ.Series结构
1.Series结构的建立
a.正常方式建立:table=pd.Series(data,index=)
b.不写index,默认为0,1,2,3... table=pd.Series(data)
c.字典方式建立:table=pd.Series({"key1":value, "key2":value ...})
2.Series属性检察
table.index //检察索引名,没有括号
table.value //检察索引值,没有括号
3.Series结构的样子:
Ⅱ.DataFrame结构
1.建立
table=pd.DataFrame(data,index=,columns=)
table=pd.DataFrame({"key1":[v11,v21,v31...] ,"key2":[v12,v22,v32] .... })
2.属性
table.shape
table.index
table.columns
table.values
table.head(k) //输出前k行
table.tail(k) //输出后k行
3.行列索引的修改
a.更改原来的索引名称
table.index=[]
table.columns=[]
//要么全部修改,要么不修改,不能只修改某一行、列的索引名
b.重设索引(只能重设为0,1,2,3....)
删除原来的索引,重设0,1,2...索引
table1=table.reset_index(drop=True)
不删除原来的索引,将原来的索引归成数据(不传参数时默认)
table1=table.reset_index(drop=False)
//需要有新表接收,不是在原数据上操纵
//只有reset_index,没有reset_columns
c.从原数据中取出一列作为索引
删除原数据中作为新索引的数据
table1=table.set_index(["name",''age''],drop=True)
不删除原数据中作为新索引的数据
table1=table.set_index("name",drop=False)
//需要有新表接收,不是在原数据上操纵
//只有set_index,没有set_columns
//可以有多个索引
Ⅲ.MultiIndex结构
如果table是多索引的表,我们检察他的索引时:
table.index
结果:MultiIndex([(索引1.1, 索引2.1),
(索引1.2, 索引2.2),
(索引1.3, 索引2.3)],
names=['索引1', '索引2'])
table.index.levels
结果:【[索引1,索引1,索引1...],[索引2,索引2,索引2...]】
这里的索引1,2就不是逐一对应的,如果索引1中有重复的,那就只表现一个,一般是按照从小到大排
代码
- # pandas笔记
- import numpy as np
- import pandas as pd
- from pandas import DataFrame
- # 一、pandas之series数据结构
- # 1.series结构的建立
- data1 = np.random.randint(60, 100, 4)
- index_1 = pd.Series(data1, index=["学生1", "学生2", "学生3", "学生4"]) # Series一定要大写!
- # 字典法建立:
- index_2 = pd.Series({"学生A": 90, "学生B": 80})
- print(index_1)
- print(index_2)
- """结果:
- 学生1 67
- 学生2 73
- 学生3 74
- 学生4 97
- dtype: int32
- -----------------
- 学生A 90
- 学生B 80
- dtype: int64
- """
- # 2.Series的属性
- print(index_1.index) # Index(['学生1', '学生2', '学生3', '学生4'], dtype='object')
- print(index_1.values) # [81 88 62 75]
- print(index_1.head(2))
- """
- 学生1 81
- 学生2 88
- dtype: int32"""
- print(index_1.tail(2))
- """
- 学生3 62
- 学生4 75
- dtype: int32"""
- # 二.DataFrame数据结构
- # 2.1建立
- table_1 = DataFrame(np.random.randint(10, 25, (3, 4)), index=["上海", "广州", "深圳"],
- columns=["11月1日", "11月2日", "11月3日", "11月4日"])
- table_2 = DataFrame({"上海": [21, 22, 22, 27], "广州": [23, 22, 25, 27], "深圳": [21, 24, 27, 24]},
- index=["11月1日", "11月2日", "11月3日", "11月4日"]) # 字典的key组成列索引
- print(table_1)
- print(table_2)
- print(table_2.index)
- print(table_2.columns)
- # 2.2属性
- print(table_1.shape)
- print(table_1.index)
- print(table_1.columns)
- print(table_2.T)
- print(table_1.head(1))
- print(table_1.tail(2))
- # 2.3重设索引
- table = pd.DataFrame(np.random.randint(60, 100, (3, 4)), index=["张三", "李四", "王五"],
- columns=["语", "数", "英", "政"])
- print(table)
- # 2.3.1 table.index
- table.index = ["同学" + str(i) for i in range(3)]
- print(table)
- # 2.3.2 table.reset_index()
- table = table.reset_index(drop=True)
- print(table)
- # 2.3.3 table.set_index("",)
- table = table.set_index("语")
- print(table)
- table0 = table.set_index(["政","英"], drop=False)
- print(table0)
- print(table0.index)
- print(table0.index.levels)
复制代码 我遇到的题目:
1.数据结构大小写题目
Series、DateFrame、MultiIndex,这三个都是大写首字母
2.DataFrame的引进
from pd import DataFrame
3.索引的重设中,能不能重设列索引
只有table.columns=【】是重设列索引,reset、set_...都是对index改变
4.DataFrame索引题目
reset_index和 set_index都不是在原数据上改变,以是需要有接收的table变量
reset_index只能重设成0,1,2,3...
reset_index和set_index的drop含义差别
index、set_index、reset_index后的结果
5.当索引中有重复时
只表现一个,不重复表现,如果是表,重复的部分空着,如果是看属性结果,那么只输出一个
6.用字典法建立DataFrame结构时
key值是列索引,行索引是0,1,2,3...
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |