数据分析基础之遇见Pandas

213 阅读2分钟
参与拿奖:本文已参与「新人创作礼」活动,一起开启掘金创作之路

1.基础知识

1.1 准备工作

# 安装pandas
pip install pandas
# 导入包
import pandas as pd

2.series序列

2.1 创建series序列

一个Series序列就是包含索引index,value的序列

# 创建一个series序列
series=pd.Series([2,8,3.01,9])
print(series)

image.png

# 自制索引
series1=pd.Series([i for i in range(5)],index=[chr(ord('a')+i) for i in range(5)])
print(series1)

image.png

# 使用字典
dic={'北京':1,'上海':2}
series2=pd.Series(dic)
print(series2)

image.png

# 查看值
print(series2.values)
#类型
print(series2.dtype)
#维度
print(series2.ndim)

image.png

2.2 常见操作

# 切片
print(series2[0:1])

image.png

# 插入数据
series3=pd.Series({"四川":2})
series2=series2.append(series3)
print(series2)

image.png

# 删除数据,并取代原始数据
series2.drop('四川',inplace=True)
print(series2)

image.png

3.DataFrame矩阵

3.1 创建矩阵

a)通过列表创建

# DataFrame(data,index,dtype,columns)
data=[['张三',23],['李四',24],['王五',26]]
df=pd.DataFrame(data,columns=['姓名','年龄'])
print(df)

image.png

b)通过字典创建

#通过字典创建
df1=pd.DataFrame({'姓名':['张三','李四','王五'],'年龄':[23,24,26]})
print(df1)

image.png

3.2 常见操作

# 值
print(df1.values)
# 矩阵大小
print(df1.shape)
# 数据类型
print(df1.dtypes)
# 获取列名
print(df1.columns.tolist())
# 维度
print(df1.ndim)
# 大小
print(df1.size)
# 索引
print(df1.index.tolist())

image.png

4 案例

4.1 读取csv文件

# 数据筛选
data=pd.read_csv(r'Customer-Churn.csv')
# 打印前五行数据
print(data.head(5)) # 等价于 data[:5]

image.png

#某列前五行
print(data['gender'][:5])

image.png

# loc使用标签加列名取出数据
# 标签+列名
print(data.loc[0:2,'gender'])
# 条件选择
print(data.loc[data['gender']=='Male',['gender']])

image.png

# 两个条件(行和列)
print(data.iloc[:,1:4])

image.png

# 单条件筛选
print(data[['gender','Partner']][data['gender']=='Male'])
# 多条件筛选
print(data[['gender']][(data['gender']=='Male')&(data['Partner']=='Yes')])

image.png

image.png

# 新加一列
data['Charges']=data['MonthlyCharges']
# 删除一列
data.drop(['Charges'],axis=1,inplace=True)
df=pd.DataFrame({"id":[1,2,3,4,5],'name':[chr(ord('a')+i) for i in range(5)],'sex':['male' if i%2==0 else 'femal' for i in range(5)]})
df_1=pd.DataFrame({"id":[1,2,3,4,5],'年龄':[i for i in range(10,15)]})
# 拼接两个矩阵,inner表示交集、outer表示并集
merge=pd.concat([df,df_1],axis=1,join='inner')
print(merge)

image.png

# 按照关键字合并
merg1=pd.merge(left=df,right=df_1,how='right',left_on='id',right_on='id')
print(merg1)

image.png

#按照索引合并
merg2=pd.merge(left=df,right=df_1,how='right',left_index=True,right_index=True)
print(merg2)

image.png

# 多重索引
print(merg2.loc[:,['name','sex']])
print(merg2.loc[(1,2),['name','sex']])

image.png

参考资料

[1] 本节代码