Python: 进阶系列之二:Pandas的使用

简介

Pandas 是python的一个数据分析包,最初被作为金融数据分析工具而开发出来,提供了大量能使我们快速便捷地处理数据的函数和方法。

数据结构说明:

  1. Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
  2. Time- Series:以时间为索引的Series。
  3. DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。
  4. Panel :三维的数组,可以理解为DataFrame的容器。

数据准备

code name age gender
2019137331 congcong 20 TRUE
2019137332 jim 21 TRUE
2019137333 jack 32 TRUE
2019137334 lucy 20 FALSE
2019137335 amanda 43 FALSE

 一、生成数据表格或数组(即dataframe/series)

1. 导入CSV或EXCEL

df = pd.DataFrame(pd.read_csv(‘users.csv’,header=1)) 
df = pd.DataFrame(pd.read_excel(‘users.xlsx’))

2. 自定义dataframe

import numpy as np
df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006], 
 "date":pd.date_range('20130102', periods=6),
  "city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
 "age":[23,44,54,32,34,32],
 "category":['100-A','100-B','110-A','110-C','210-A','130-F'],
  "price":[1200,np.nan,2133,5433,np.nan,4432]},
  columns =['id','date','city','category','age','price'])

3. 自定义series

sr = pd.Series(['aa','bb','cc']) # 默认索引是0,1,2
sr = pd.Series([{'a':'aa','b':'bb','c':'cc'}])
sr = pd.Series(['aa','bb','cc'], index = ['a','b','c']) # 第二个参数是自定义索引,一旦加上自定义索引,series就支持了字典的特性,相当加了key

sr.index # Index(['a', 'b', 'c'], dtype='object')
sr['a'] # 'aa',支持数组的特性,得到某个索引对应的值
sr[0] # 'aa',支持数组的特性,依然可以使用默认索引
sr.a  # 'aa',支持字典的特性

sr.index[0] # 'a'
sr.items() # <zip at 0x1a633b28948>
sr.keys() # Index(['a', 'b', 'c'], dtype='object')
'a' in sr # True

  二、查看数据

#基本信息查看
df.shape #(5, 4),查看dataframe的维度,5行4列
df.head(2) # 只想查看前2行,默认是5行
df.tail(2) # 只想查看最后2行,默认是5行
df.info() #查看dataframe的详细信息,包括每列的数据类型,内存占用大小

df.index # 获取索引
df.values # 获取值数组
df.columns # Index(['code', 'name', 'age', 'gender'], dtype='object'),查看所有列
df.dtypes #查看每列的数据类型


# 列相关
df.name # 查看name列的数据, 可以理解为一维数组,是一个pandas.core.series.Series类型
df['name'] # 查看name列的数据,与上一行等价
df[['name','code']] # # 查看name和code两列的数据, 是一个pandas.core.frame.DataFrame类型


# 行相关
df.loc[0] # 查看第一行的数据, 可以理解为一维数组,是一个pandas.core.series.Series类型
df.loc[2:4] # 查看2,3,4行的数据, 是一个pandas.core.frame.DataFrame类型
df.loc[[2,3,4]] # 查看2,3,4行的数据, 是一个pandas.core.frame.DataFrame类型,与上一行等价

df.iloc[0,1] # congcong,获取第一行,第二列的数据,是一个字符串类型,也可以是整型等。
df.iloc[0,1:3] # 获取第一行,第二三列的数据,是一个series类型

三、数据筛选

"""
布尔索引来筛选数据
"""
df[df.name =='congcong']

df[df.name.str.endswith('cong')]

df[df.name.str.contains('congcong') & df.gender] # 只返回name包括congcong并且gender为True的数据

三、简单数据处理

发布了105 篇原创文章 · 获赞 46 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/wucong60/article/details/98371575
今日推荐