Python中的Pandas

版权声明:本文版权归作者所有,未经允许不得转载! https://blog.csdn.net/m0_37827994/article/details/86552672

Pandas

Pandas是用于数据分析
在本文中,我们用titanic.csv的数据进行分析
https://raw.githubusercontent.com/GokuMohandas/practicalAI/master/data/titanic.csv

一、加载数据

import pandas as pd
# Read from CSV to Pandas DataFrame
df = pd.read_csv("titanic.csv", header=0)

二、数据分析

1、查看数据前n行

# First five items
df.head(5)

输出结果:
在这里插入图片描述

  • 注:这些是不同的特点:
    pclass: 人物阶级
    name: 乘客的全名
    sex: 性别
    age: 数值年龄
    sibsp: #兄弟姐妹/配偶登船
    parch: 父母/孩子的数量
    ticket: 票号
    fare: 票价
    cabin: 位置的空间
    emarked: 乘客登船的港口(C -瑟堡,S -南安普顿,Q =昆士城)
    survives: 是否生存(0 -死亡,1 -活了下来)

2、查看数值型列的汇总统计

# Describe features
df.describe()

输出结果:
在这里插入图片描述

3、画出某一项的直方图

# Histograms
df["age"].hist()

输出结果:
在这里插入图片描述

4、唯一值

# Unique values
df["embarked"].unique()

输出结果:

array(['S', 'C', nan, 'Q'], dtype=object)

5、根据特征选择数据

# Selecting data by feature
df["name"].head()

输出结果:
在这里插入图片描述

6、筛选信息

# Filtering
df[df["sex"]=="female"].head() # only the female data appear

输出结果:
在这里插入图片描述

7、按照某一列降序排列数据

# Sorting
df.sort_values("age", ascending=False).head()

输出结果:
在这里插入图片描述

8、分组

# Grouping
survived_group = df.groupby("survived")
survived_group.mean()

输出结果:
在这里插入图片描述

9、按行选取数据

# Selecting row
df.iloc[0, :] # iloc gets rows (or columns) at particular positions in the index (so it only takes integers)

输出结果:
在这里插入图片描述

10、按位置选取数据

# Selecting specific value
df.iloc[0, 1]

输出结果:
在这里插入图片描述

扫描二维码关注公众号,回复: 5079150 查看本文章

11、按索引选取数据

# Selecting by index
df.loc[0] # loc gets rows (or columns) with particular labels from the index

输出结果:
在这里插入图片描述

三、数据处理

1、具有至少一个NaN值的行

# Rows with at least one NaN value
df[pd.isnull(df).any(axis=1)].head()

输出结果:
在这里插入图片描述

2、删除具有Nan值的行

# Drop rows with Nan values
df = df.dropna() # removes rows with any NaN values
df = df.reset_index() # reset's row indexes in case any rows were dropped
df.head()

输出结果:
在这里插入图片描述

3、删除多个列

# Dropping multiple columns
df = df.drop(["name", "cabin", "ticket"], axis=1) # we won't use text features for our initial basic models
df.head()

输出结果:
在这里插入图片描述

4、映射特性值

# Map feature values
df['sex'] = df['sex'].map( {'female': 0, 'male': 1} ).astype(int)
df["embarked"] = df['embarked'].dropna().map( {'S':0, 'C':1, 'Q':2} ).astype(int)
df.head()

输出结果:
在这里插入图片描述

四、特征工程

1、用于创建新特性的Lambda表达式

# Lambda expressions to create new features
def get_family_size(sibsp, parch):
    family_size = sibsp + parch
    return family_size

df["family_size"] = df[["sibsp", "parch"]].apply(lambda x: get_family_size(x["sibsp"], x["parch"]), axis=1)
df.head()

输出结果:
在这里插入图片描述

2、重组头

# Reorganize headers
df = df[['pclass', 'sex', 'age', 'sibsp', 'parch', 'family_size', 'fare', 'embarked', 'survived']]
df.head()

输出结果:
在这里插入图片描述

五、保存数据

# Saving dataframe to CSV
df.to_csv("processed_titanic.csv", index=False)
# See your saved file
!ls -l

猜你喜欢

转载自blog.csdn.net/m0_37827994/article/details/86552672