其他
10分钟快速认识Pandas
公众号:尤而小屋
作者:Peter
编辑:Peter
大家好,我是Peter~
本文通过介绍一个简单的案例来带领大家快速上手Pandas。
导入库
import pandas as pd # 惯例方式
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
读取本地csv文件
df = pd.read_csv("Titanic.csv")
df
数据大小
shape属性能够查看数据大小,返回的是一个元组:第一个元素值行记录数,第二个是字段个数
In [3]:
df.shape
Out[3]:
(891, 12)
查看头尾文件
head:默认是前5条 tail:默认是尾部5条
基本信息
In [6]:
df.dtypes
Out[6]:
PassengerId int64
Survived int64
Pclass int64
Name object
Sex object
Age float64
SibSp int64
Parch int64
Ticket object
Fare float64
Cabin object
Embarked object
dtype: object
In [7]:
df.index
Out[7]:
RangeIndex(start=0, stop=891, step=1)
In [8]:
df.columns
Out[8]:
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
dtype='object')
选择数据
df.iloc[2:5,1:4] # 切片选择
df.loc[2:5,"Pclass"] # 切片 + 属性
df["Age"] # 指定字段,单个字段得到Series数据
df[["Age","Pclass"]] # 多个字段得到DataFrame
df.select_dtypes(include=["float","int"]) # 根据字段类型选择
df[df.Age > 36].head(3) # 根据关系选择
df[df["Name"].str.contains("Miss")] # 根据文本关系选择
df[(df["Sex"] == "male") & (df["Parch"] == 0)] # 多个筛选条件
排序
In [15]:
df.sort_values("Fare").head() # 默认升序
Out[15]:
下面改成了降序的形式:
缺失值情况
In [17]:
df.isnull().sum() # 删除前
Out[17]:
PassengerId 0
Survived 0
Pclass 0
Name 0
Sex 0
Age 177
SibSp 0
Parch 0
Ticket 0
Fare 0
Cabin 687
Embarked 2
dtype: int64
In [18]:
df.dropna(inplace=True) # 删除缺失值
In [19]:
df.isnull().sum() # 删除后
Out[19]:
PassengerId 0
Survived 0
Pclass 0
Name 0
Sex 0
Age 0
SibSp 0
Parch 0
Ticket 0
Fare 0
Cabin 0 # 没有缺失值
Embarked 0
dtype: int64
分组统计
In [20]:
df1 = df.groupby("Sex").agg({ "Name":"nunique", "Age":np.mean, "Fare":"sum"})
df1
转置功能
Pandas中有两种方式实现转置:
T transpose
apply函数
In [22]:
df["Sex"].value_counts()
Out[22]:
male 95
female 88
Name: Sex, dtype: int64
In [23]:
# 将male变成0,female变成1
df["Sex"] = df["Sex"].apply(lambda x: 0 if x == "male" else 1)
In [24]:
df["Sex"].value_counts()
Out[24]:
0 95
1 88
Name: Sex, dtype: int64
可视化
In [25]:
plt.bar(df["Embarked"], df["Fare"])
plt.show()
sns.pairplot(df[["Sex","Age","Fare"]])
plt.show()
数据输出
df.to_csv("new_data.csv",index=False) # 保存到csv文件
df.to_excel("new_data.xlsx",index=False) # 保存到Excel文件
df.to_json("new_data.json",index=False) # 保存成json文件
推荐阅读
尤而小屋,一个温馨的小屋。小屋主人,一手代码谋求生存,一手掌勺享受生活,欢迎你的光临