Pandas模块简介及使用 您所在的位置:网站首页 统计分析功能模块 Pandas模块简介及使用

Pandas模块简介及使用

2024-06-04 10:01| 来源: 网络整理| 查看: 265

pandas的诞生

2008年,Wes Mckinney 开始开发一个用于分析金融数据的工具库,于2009年开源。仅此于scikit-learn之后,深受开发者的宠爱。 Pandas的Github地址

pandas的简介

Pandas是当前最流行、最常用的数据分析工具。当处理表格数据(比如存储在电子表格或数据库中的数据)时,pandas是最适合您的工具。它将帮助您探索、清理和处理您的数据。数据表被称为DataFrame,panda支持与多种文件格式或数据源的集成(csv、excel、sql、json、parquet…)。从每个数据源导入数据是由前缀为read *的函数提供的。类似地,to_*方法用于存储数据……选择或过滤特定的行和或列?过滤条件下的数据?在pandas中可以使用切片、选择和提取所需数据的方法。它是基于numpy,且集成了matplotlib模块。

全面支持数据分析项目的研发步骤 ( 获取->清洗 -> 处理并计算 -> 视图分析 );提供获取、存储数据功能 ( csv、json、excel… );清洗数据及扩充数据类型;对数据进行过滤、选择;聚合计算 ( max、min、mean… );可视化图表。 开始撸起袖子敲代码拉~ Series # 导入模块 import pandas as pd from pandas import Series # 1、一维数组 sel = Series(data=[1,2,3,4], index=['a','b','c','d']) result= list(sel.iteritems()) """ Result: [('a', 1), ('b', 2), ('c', 3), ('d', 4)] """

Series:一维数组,可通过index创建索引。

# 2、传入字典 dict = {"rad" : 100,'ji':200,'sad':900,'koo':800} sel1 = Series(data=dict) """ Result: rad 100 ji 200 sad 900 koo 800 dtype: int64 """

Series:传入字典,直接将转化键为索引。

# 3、重新设定索引 new_sel= sel.reindex(['b','a','c','d','e']) """ Result: b 2.0 a 1.0 c 3.0 d 4.0 e NaN dtype: float64 """

Series:reindex重新索引,会返回一个新的Series(调用reindex将会重新排序,缺失值用NaN填补)。 注:此时的Series从int类型经reindex后转化成了float64类型,原因:NaN的类型是float64。

# 4、删除数据 sel2 = pd.Series(range(4,10)) data = sel2.drop([2,3]) """ Result: 0 4 1 5 4 8 5 9 dtype: int64 """

Series:drop(索引)删除数据 返回删除后的数据。 注:Series 中的索引与列表的索引使用方法相同。

# 5、计算 sel3 = pd.Series(data=[12,23,14,15],index=['Aree','Rree','Miie','Kiie']) sel4 = pd.Series(data=[11,13,24,25],index=['Oree','Rree','Aiie','Diie']) """ Result: Aiie NaN Aree NaN Diie NaN Kiie NaN Miie NaN Oree NaN Rree 10.0 dtype: float64 """

Series:根据索引来计算 相同可计算,不同则为NaN

# 6、过滤筛选 sel5 = pd.Series(data=[1,2,6,4],index=list('abcd')) re = sel5[sel5>3] """Result: c 6 d 4 dtype: int64 """

[条件]:返回过滤后的值

DataFrame

随机构建

from pandas import DataFrame import numpy as np df1 = DataFrame(np.random.randint(0,10,(5,6))) # 随机选择0-10之间的数,(5,6)->(行,列) """Result: 0 1 2 0 6 3 3 1 0 4 1 2 1 8 1 """

传入字典

data = { 'Name' : pd.Series(['zs','ls','we'], index=list('abc')), 'Age' : pd.Series(['10','20','30','40'], index=list('abcd')), 'Country' : pd.Series(['中国','日本','韩国'], index=list('abc')) } df2 = DataFrame(data) # 若该列无索引,则会填充NaN # 将df2转化成字典 new_ditc = df2.to_dict() """ Result: df2 Name Age Country a zs 10 中国 b ls 20 日本 c we 30 韩国 d NaN 40 NaN new_dict = {'Name': {'a': 'zs', 'b': 'ls', 'c': 'we', 'd': nan}, 'Age': {'a': '10', 'b': '20', 'c': '30', 'd': '40'}, 'Country': {'a': '中国', 'b': '日本', 'c': '韩国', 'd': nan}} """

属性

data2 = { 'Name' : ['J','I','A'], 'Age' : ['18','13','20'], 'Country' : ['ua','us','io'] } df3 = pd.DataFrame(data=data2,index=['1','2','3']) # 1、获取行数和列数 shape = df3.shape # """Result:(3, 3)""" # 2、获取列 - columns索引 df3.index.tolist() """Result: ['1', '2', '3'] 而index返回的是:Index(['1', '2', '3'], dtype='object') """ # 3、values 键值 values = df3.values """Result:返回所有值 [['J' '18' 'ua'] ['I' '13' 'us'] ['A' '20' 'io']] """ # 4、info 返回改数组的信息 info = df3.info() """Result: Index: 3 entries, 1 to 3 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Name 3 non-null object 1 Age 3 non-null object 2 Country 3 non-null object dtypes: object(3) memory usage: 96.0+ bytes None """ # 5、head(可指定行数) 显示头行 head = df3.head(3) # 6、tail(行数) 显示后几行 tail = df3.tail() # 7、获取列 type 返回 Series 获取多列返回 DataFrame [['name','age]] name = df3['Name'] """Result: 1 J 2 I 3 A Name: Name, dtype: object """ # 8、Dataframe修改成index、columns df4 = pd.DataFrame(np.arange(9).reshape(3,3),index=['bj','sh','gz'],columns=['a','b','c']) index_4 = df4.index # Index(['bj', 'sh', 'gz'], dtype='object') 可被赋值 df4.index = ['beijing','shanghai','guangzhou'] # 对index进行赋值 """Result: a b c beijing 0 1 2 shanghai 3 4 5 guangzhou 6 7 8 """ # 9、重新命名行和列的俩种方法 def test_map(x): """ :param x: 是原有的行列值 :return: """ return x+'_new' rename = df4.rename(index=test_map, columns=test_map) # 将行和列都进行修改 rename_1 = df4.rename(index={'bj':'beijing'},columns={'a':'A'}) # 直接用字典重新赋值 """ rename = a_new b_new c_new bj_new 0 1 2 sh_new 3 4 5 gz_new 6 7 8 rename_1 = A b c beijing 0 1 2 sh 3 4 5 gz 6 7 8 """ # 10、set_index()的使用:将一组数据作为索引 df5 = pd.DataFrame({'X':range(5),'Y':range(5),'S':list('abcde'),'Z':[1,1,2,2,2]}) result = df5.set_index('S', drop=False) # drop 默认为True将该列的值删除 """Result:drop=False X Y S Z S a 0 0 a 1 b 1 1 b 1 c 2 2 c 2 d 3 3 d 2 e 4 4 e 2 drop=True X Y Z S a 0 0 1 b 1 1 1 c 2 2 2 d 3 3 2 e 4 4 2 """


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有