一、Series序列
定义:序列是只有一列的数据
1.组成元素:数值和索引 (data 和 index)
2.常用属性
shape
size
index
value
3.常用函数
head()查看开始几个值 (tail()查看结尾几个值)
unique()返回序列去重后的数据,nunique()返回序列中不同值的个数
4.最实用操作:[]切片,括号里放索引,返回对应值
eg.过滤序列空值
import pandas as pd
s1 = pd.Series(data = [1,2,3,4,5],index= ['a','b','c','d','e'])
s2 = pd.Series(data = [1,2,3,4,5],index= ['a','b','c', 'e','f'])
s3 = s1+s2
print(s3)
print('-------')
print(s3[s3.notnull()]) #过滤s3序列的空值
print(s3[~s3.isnull()]) #效果同上,~为取反
#直接删掉空值的函数 s3.dropna()
#填充空值 s3.fillna(0),用0填充空值
二、DataFrame
DataFrame是二维数据,表格型数据
1.属性
行索引 index
列索引 columns
值value
2.索引和切片操作
1.索引操作 取单列:df[col] 取多列:df[[col1,col2,...]] 取单行:df.iloc[index] 取多行:df.iloc[[index1,index2,...]] 取元素:df.iloc[index,col] 2.切片操作 取行:df[index1:index2] 取列:df.iloc[:,col1:col2]
import numpy as np
import pandas as pd
# df = pd.DataFrame(data=np.random.randint(0,100,size=[5,6]))
df = pd.DataFrame(data= [[1,2,3],[4,5,6],[7,8,9],[1,5,9]] , index= ['a','b','c','d'],columns= ['第一列','第二列','第三列'] )
print(df)
print(df.columns)
print(df.index)
print(df.shape) #(5,6)
print(df.values)
"""
df.columns,df.index 未指定索引时返回
RangeIndex(start=0, stop=6, step=1)
RangeIndex(start=0, stop=5, step=1)
df.columns,df.index 指定索引名返回
Index(['第一列', '第二列', '第三列'], dtype='object')
Index(['a', 'b', 'c', 'd'], dtype='object')
"""
筛选出含有特定子字符串的行,并筛选出除了特定的几个字符串以外的数据
china_data = df[df['一级部门'].str.contains('中国')] #[]里的返回值是True和False,中括号里返回的是布尔值,df[]返回值为真的行数据
# 像是序列Series和DataFrame的结合
other_data = df[~df['一级部门'].str.contains('中国|欧|拉美')] #筛选出除了这三类国家名称以外的数据