python 包之 pandas 数据分析处理教程

一、安装

  • pandas 是 python 的数据分析处理库

  • 是为解决数据分析任务而创建的

  • pandas 纳入了大量库和一些标准的数据模型

  • 提供了大量能使我们快速便捷地处理数据的函数和方法

pip install pandas

 

二、文件读取并查看信息

  • 读取CSV、TXT文件

  • 查看前N条、后N条信息

import pandas as pd

info = pd.read_csv("students.csv", encoding = "utf-8")

info.head(N)
info.tail(N)

# 查看数据框的格式,是DataFrame还是ndarray
print(type(info))

 

三、列的操作

import pandas as pd

info = pd.read_csv("students.csv", encoding = "utf-8")
# 查看有哪些列
info.columns
# 查看有几行几列
info.shape
# 重新排索引
info.reset_index(drop = True)
# 打印所有列的数据类型
info.dtypes
# 打印某一列、某几列数据
info["name"]
info[["age", "gender"]]
# 加减乘除:将每行都乘以100(加 减 乘 除 一样)
info[["age", "height"]] * 100
# 增加一列
new_col = info["waist"] * 100
info["waist"]= new_col
# 列之间的运算
info["age"] * info["waist"]
# 查看列的最大值、最小值、平均值
info["int_rate"].max()
info["int_rate"].min()
info["int_rate"].mean()
# 按某个字段排序 - 升序
info.sort_values("int_rate_one", inplace = True) # inplace是否新建一个dataframe,True不需要
# 按某个字段排序 - 降序
info.sort_values("int_rate_one", inplace = True, ascending = False)
# 根据条件打印某列数据
info[info["age"] == 20]

 

四、行的操作

import pandas as pd

info = pd.read_csv("students.csv", encoding = "utf-8")

# 打印某一行、某几行数据
info.loc[0]
info.loc[0:2]
info.loc[[2, 5, 10]]
# 自由取数据 如:取80行 age
info.loc[80, "age"]

 

五、数据框、空值、缺失值的操作

import pandas as pd

info = pd.read_csv("students.csv", encoding = "utf-8")

# 查看数据框的一些属性:最大、最小、均值、四分位数等
info.describe()

# 空值相关的操作
pin = info["pin"]
pin_isnull = pd.isnull(pin) 
pin_isnull_list = info[pin_isnull] 
len(pin_isnull_list)

# 缺失值相关操作, 简单的处理办法就是过滤掉null值
books = info["life_cycle_books"]
book_isnull = pd.isnull(books)
book_list_isnull = info["life_cycle_books"][book_isnull == False]
mean = sum(book_list_isnull) / len(book_list_isnull)
# 删除缺失值, 所有行
na_info = info.dropna(axis = 1)
# 删除缺失值, 可以指定列
na_info = info.dropna(axis = 0, subset = ["age", "name"])

 

六、数据透视表

import pandas as pd
import numpy as np

info = pd.read_csv("students.csv", encoding = "utf-8")
# index:要透视的列
# values:要比较的关系列
# aggfunc:具体的关系,默认值:np.mean
data_info = info.pivot_table(index = ["age", "name"], values = "height", aggfunc = np.mean)
print(data_info)

 

七、Series操作

  • pandas 有三种数据结构Series、DataFrame、Panel

from pandas import Series

# Series显示某一列数据
series_name = taitan["Name"]
series_name.values

# 取5-10行数据
series_custom[5: 10]

# index变换
old_index = series_custom.index.tolist()
sort_index = sorted(old_index)
new_index = series_custom.reindex(sort_index)

# Series按索引和值排序的函数
sc1 = series_custom.sort_index()
print(sc1)
sc2 = series_custom.sort_values()
print(sc2)

# Series 过滤
series_custom > 0.5
series_custom[series_custom > 0.5]
series_custom[(series_custom > 0.5) & (series_custom < 0.9)]

 

八、DataFrame操作

  • Series是一行数据,DataFrame是多行数据

  • DataFrame 可以看成由多个 Series 组成的

import pandas as pd

df = pd.read_csv("titanic_train.csv")

# DataFrame的索引变换
df_name = df.set_index("Name", drop = False)

# DataFrame查看某一类型的数据
types = df_name.dtypes
float_columns = types[types.values == "float64"].index
df_name[float_columns]

# DataFrame求方差
float_df = df_name[float_columns]
float_df.apply(lambda x: np.std(x))

 

posted @ 2022-05-01 12:30  sunnyeden  阅读(295)  评论(0编辑  收藏  举报