首页 > 代码库 > Python的Pandas库简述

Python的Pandas库简述

pandas 是 python 的数据分析处理库
import pandas as pd

1、读取CSV、TXT文件

foodinfo = pd.read_csv("pandas_study.csv", encoding = "utf-8")

 

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

foodinfo.head(N)foodinfo.tail(N)

 

3、查看数据框的格式,是DataFrame还是ndarray

print(type(foodinfo))# 结果:<class ‘pandas.core.frame.DataFrame‘>

 

4、查看有哪些列

foodinfo.columns

 

5、查看有几行几列

foodinfo.shape

 

6、打印某一行、某几行数据

foodinfo.loc[0]foodinfo.loc[0:2]foodinfo.loc[[2, 5, 10]]    #注意里面是一个数组

 

7、打印某一列、某几列数据

foodinfo["dti"]foodinfo[["int_rate", "dti"]]    #注意里面是一个数组# 或者:columns = ["int_rate", "dti"]foodinfo[columns]

 

8、打印所有列的数据类型

foodinfo.dtypes

 

9、对列的一些相关操作

col_columns = foodinfo.columns.tolist()new_columus = []for c in col_columns:if c.endswith("s"):new_columus.append(c)print(c)foodinfo[new_columus]

 

10、加减乘除:将每行都乘以100(加 减 乘 除 一样)

foodinfo[["int_rate", "dti"]] * 100

 

11、增加一列

new_col = foodinfo["int_rate"] * 100foodinfo["new_col"]= new_col

 

12、列之间的运算

foodinfo["dti"] * foodinfo["int_rate"]

 

13、查看列的最大值、最小值、平均值

foodinfo["int_rate"].max()foodinfo["int_rate"].min()foodinfo["int_rate"].mean()

 

14、按某个字段排序 - 升序

# inplace是否新建一个dataframe,True不需要foodinfo.sort_values("int_rate_one", inplace = True)# 按某个字段排序 - 降序foodinfo.sort_values("int_rate_one", inplace = True, ascending = False)

 

15、查看数据框的一些属性:最大、最小、均值、四分位数等

foodinfo.describe()

 

16、空值相关的操作

pin = foodinfo["pin"]pin_isnull = pd.isnull(pin) # 查看所有空值pin_isnull_list = foodinfo[pin_isnull] # 找出所有为空值的行len(pin_isnull_list)        # 空值的个数

 

17、缺失值相关操作

# 简单的处理办法就是过滤掉null值books = foodinfo["life_cycle_books"]book_isnull = pd.isnull(books)book_list_isnull = foodinfo["life_cycle_books"][book_isnull == False]mean = sum(book_list_isnull) / len(book_list_isnull)    # 计算平均值

 

18、根据条件打印某列数据

foodinfo[foodinfo["life_cycle_books"] == 1]

 

19、数据透视表

import numpy as np# index:要透视的列# values:要比较的关系列# aggfunc:具体的关系,默认值:np.meandata_foodinfo = foodinfo.pivot_table(index = ["life_cycle_books", "potential_value_books"], values = "risk_level", aggfunc = np.mean)print(data_foodinfo)

 

20、删除缺失值

# 所有行na_foodinfo = foodinfo.dropna(axis = 1)# 可以指定列na_foodinfo = foodinfo.dropna(axis = 0, subset = ["life_cycle_books", "potential_value_books"])

 

21、自由取数据 如:取80行 life_cycle_books列

foodinfo.loc[80, "life_cycle_books"]

 

22、重新排索引

foodinfo.reset_index(drop = True)

 

23、自定义函数:返回空值个数

def count_null_columns(column):    column_null = pd.isnull(column)    list_null = column[column_null]    count_null = len(list_null)    return count_nullfoodinfo.apply(count_null_columns)

 

24、Series

# pandas 三种数据结构# Series# DataFrame# Panelfrom pandas import Series

 

25、Series显示某一列数据

series_name = taitan["Name"]series_name.values

 

26、定位某行某列

series_name = taitan["Name"]series_age = taitan["Age"]series_custom = Series(series_age.values, index = series_name)series_custom[["Ahlin, Mrs. Johan (Johanna Persdotter Larsson)", "Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)"]]# 说明:series_custom[""] 按列取 series_custom[[""]] 按行取

 

27、取5-10行数据,和上面一样:

series_custom[5: 10]

 

28、index变换

old_index = series_custom.index.tolist()sort_index = sorted(old_index)new_index = series_custom.reindex(sort_index)print(new_index)

 

29、Series按索引和值排序的函数

sc1 = series_custom.sort_index()print(sc1)sc2 = series_custom.sort_values()print(sc2)

 

30、Series 过滤

series_custom > 0.5series_custom[series_custom > 0.5]series_custom[(series_custom > 0.5) & (series_custom < 0.9)]# 注:&、| 都是单符号

 

31、DataFrame

# Series是一行数据,DataFrame是多行数据# DataFrame 可以看成由多个 Series 组成的df = pd.read_csv("titanic_train.csv")

 

32、DataFrame的索引变换

# drop 是否新创建一个DF,True否 False是(表示还要保留Name这一列,否则一会无法进行计算)df_name = df.set_index("Name", drop = False)

 

33、DataFrame查看某一类型的数据

types = df_name.dtypesfloat_columns = types[types.values == "float64"].indexdf_name[float_columns]

 

34、DataFrame求方差

float_df = df_name[float_columns]float_df.apply(lambda x: np.std(x))

 

Python的Pandas库简述