python—pandas 1


前言

pandas是基于numpy的一个工具,创建的目的是为了解决数据分析。它纳入大量的库和一些标准的数据模型,提供了大量使我们快速处理数据的函数和方法。

pandas的基本结构

1.Series

Series是一维数组,与Numpy中的array相似,可以保存不同种数据类型,如字符串、数字等。

Series初始化:

import numpy as np
import pandas as pd
s = pd.Series([1,2,3,np.nan,12],index=['a','b','c','d','e']) #index是定义下标,默认情况下是数字,也可以s.index = list('abcde')

s.idnex  #索引——数据的行标签
s.values #查看数据
s.index.name = '索引'

2.DataFrame

DataFrame是一个二维的表格型数据结构。

(1)构建一个DataFrame

构建一个DataFrame:

data = pd.date_range('20200101',periods=10)#构建一个起始为2020年1月1日,10个日期的时间序列作为第一维下标
w = pd.DataFrame(np.random.randn(10,4),index=data)#如果不指定index和columns,默认情况下是从0开始的数字

##查看数据
w.head()  #查看前几行,默认是5
w.tail(3)  #查看后3行

除了向DataFrame中传入二维数组,也可以用字典传入数据:

w1 = pd.DataFrame({
    
    'A':1.,'B':pd.Timestamp('20200101'),'C':pd.Series(1,index=list(range(4)),dtype=float),'D':np.array([3]*4,dtype=int),'E':pd.Categorical(['test','train','test','train'])})
#字典的每一个key代表一列,其value可以是各种能够转化成Series的对象,DataFrame只要求每一列数据的格式相同。

(2)基本操作

读取数据

w = pd.read_excel(r'D:\python学习\豆瓣电影数据.xlsx')#路径+文件名,r是表示告诉系统不需要转义

行操作:iloc是左闭右开,loc是闭区间

w.iloc[0]#出了的结果就是第一行的所有内容
#w.iloc[0:5] 与w.head()结果一样

#添加一行
dit = {
    
    '名字':'复仇者联盟3','投票人数':2370936,'类型':'剧情/科幻','产地':'美国','上映时间':'2018-05-04 00:00:00','时长':150,'年代':2018,'评分':8.7,'首映地点':'美国'}
s = pd.Series(dit)
s.name = 38738
w = w.append(s) #把s加到w的最后一行

#删除一行
w = w.drop(38738)

列操作

w.columns      #可以看见所有列的名称
w['名字'][:5]  #看前5行名字这列的内容,取多列:  w[['名字','评分']]

#增加列
w['序号'] = range(1,len(w)+1)#range是一个左闭右开的区间,是取的整数

#删除一列
w = w.drop('序号',axis=1)

#取多行多列:w.loc[[1,4,6],['名字','评分']]

条件选择

w[w['产地']=='中国大陆']  #得到所有产地为中国大陆的数据
w[(w.产地=='中国大陆')&(w.评分>9)]#得到所有产地为中国大陆并且评分大于9的电影的数据
w[((w.产地=='中国大陆')|(w.产地=='美国'))&(w.评分>9)]

(3)缺失值及异常值处理

我们在做数据分析之前,就会对数据进行清洗,就包括缺失值和异常值的处理。
判断缺失值

w.isnull()  #对数据中所有的缺失值进行判断
w[w['名字'].isnull()]  #查找某一列的缺失值

填充缺失值

fillna(np.mean(w['评分']),inplace=True)#用均值和中位数的方法填充只是对数字型数据,inplace=True就是直接在原始数据填充。
##对文本数据填充
w.fillna('未知产地') 

删除缺失值
w.dropna():
how = 'all’表示删除全为空值的行和列
inplace=True表示覆盖之前的数据
axis=0表示选择行,1表示选择列
异常值处理
对于数量少的,直接删掉

(4)数据保存

w.to_excel('路径+文件名')

猜你喜欢

转载自blog.csdn.net/Txixi/article/details/112916019