数据结构
-
series:是一种类似于一位数组的对象,由一组数据及一组与之相关的数据标签(即索引)组成。
-
dataframe:由一组数据与一对索引(行索引和列索引)组成的表格型数据结构。
创建
-
series
列表的方式:传入一个列表,通过index指定索引 s2=pd.Series([1,2,3,4], index=[‘a’,‘b’,‘c’,‘d’])
字典的方式:以键值对的方式,key是数据标签,value是数据值 s3=pd.Series({‘a’:1,‘b’:2,‘c’:3,‘d’:4}) -
dataframe
列表的方式:传入一个列表/嵌套列表,通过index、columns指定索引
df2=pd.DataFrame([[‘a’,‘A’],[‘b’,‘B’],[‘c’,‘C’],[‘d’,‘D’]], columns=[‘小写’,‘大写’], index=[‘一’,‘二’,‘三’,‘四’])
字典的方式:以键值对的方式,key是列索引,value是一列的数据值,行索引可以使用index设置
data = {‘小写’:[‘a’,‘b’,‘c’,‘d’],‘大写’:[‘A’,‘B’,‘C’,‘D’]}
df3=pd.DataFrame(data,index = [‘一’,‘二’,‘三’,‘四’])
获取行、列索引和值
.columns 列索引 .index 行索引 .values 值
数据获取(***)
常规的数据选择主要有列选择、行选择、行列同时选择三种。
- 列选择:一般使用列名取值 df[‘a’] df.a(不推荐使用,有空格和中文字符的时候不好用)
- 行选择:使用loc或iloc (loc/iloc可以省略)
- loc:标签索引 按标签进行数据获取,是左闭合右闭合的
- iloc:位置索引 按位置进行数据获取,是左闭右开的**
eg:
ser_obj = pd.Series(range(5), index=['a','b','c','d','e'])
ser_obj —— a 0
b 1
c 2
d 3
e 4
● 行索引 ser_obj.loc['b'] 1 ser_obj['b'](省略loc)
ser_obj.iloc[1] 1 ser_obj[1](省略iloc)
● 不连续索引时 —— 需要使用list ser_obj[['a','c']] / ser_obj[[1,3]]
●区别: ser_obj[1:3] b,c行 ser_obj['b':'d'] b,c,d行
行和列同时选择:
○ 同时使用行和列的索引名称索引 df.loc[[‘一’,‘三’], [‘订单编号’,‘识别码’]]
○ 同时使用位置索引 df.iloc[[0,1], [0,2]] df.iloc[: ,[0 , 2]] (列的位置不连续哦)
○ 切片索引(使用位置) df.iloc[0:2, 1:2]
布尔遮罩(条件选择)
eg:
#找出说英语的国家
filter_condition = df['language'].str.contains('English') df[filter_condition]
#排名前20的国家
df[df['Happiness_Rank'] <= 20]
#输出第2行中为1,且第3行为3的列
(df_obj.loc[1,:]==1) & (df_obj.loc[2,:]==3)