Pnadas学习day-01
Pandas学习day-01
导入Pandas
import pandas as pd
import numpy as np
Pandas基本数据结构
pandas中有两种基本结构
Series
一维数组,与numpy中得array类似,与python中的基本数据结构List也相近。Series能保存不同的数据类型。
DataFrame
二维的表格型数据结构。
Pandas的Series类型
一维Series可以用一维列表初始化
s=pd.Series([1,3,5,np.nan,6,8])
s
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
s=pd.Series([1,3,5,np.nan,6,8],index=['a','b','c','d','e','f'])
s
a 1.0
b 3.0
c 5.0
d NaN
e 6.0
f 8.0
dtype: float64
索引数据的行标签
s.index
Index(['a', 'b', 'c', 'd', 'e', 'f'], dtype='object')
值
s.values
array([ 1., 3., 5., nan, 6., 8.])
s[0]
1.0
s[3]
nan
切片操作
s[2:5]
c 5.0
d NaN
e 6.0
dtype: float64
s[::2]
a 1.0
c 5.0
e 6.0
dtype: float64
索引赋值
s.index.name='索引'
s
索引
a 1.0
b 3.0
c 5.0
d NaN
e 6.0
f 8.0
dtype: float64
pandas的DataFrame类型
构造一个时间序列
date=pd.date_range('20180101',periods=6)
date
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04','2018-01-05', '2018-01-06'],dtype='datetime64[ns]', freq='D')
传入二维数组
df=pd.DataFrame(np.random.randn(6,4),index=date,columns=list('ABCD'))
df
A | B | C | D | |
---|---|---|---|---|
2018-01-01 | 0.276367 | 0.235869 | -0.863373 | 0.785798 |
2018-01-02 | -0.585890 | 0.142942 | -0.504779 | -1.370040 |
2018-01-03 | -0.607308 | -0.983548 | 0.310815 | 0.338497 |
2018-01-04 | 0.025879 | -0.442640 | -0.862432 | 1.204614 |
2018-01-05 | -0.278121 | 0.272711 | 0.491046 | -0.114447 |
2018-01-06 | -0.042118 | -0.761489 | -2.086405 | -0.566671 |
使用字典传入数据
df2=pd.DataFrame({'A':1,'B':pd.Timestamp('20180101'),'C':pd.Series(1,index=list(range(4)),dtype=float),'D':np.array([3]*4,dtype=int),'E':pd.Categorical(['test','train','test','train']),'F':'abc'})
df2
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
0 | 1 | 2018-01-01 | 1.0 | 3 | test | abc |
1 | 1 | 2018-01-01 | 1.0 | 3 | train | abc |
2 | 1 | 2018-01-01 | 1.0 | 3 | test | abc |
3 | 1 | 2018-01-01 | 1.0 | 3 | train | abc |
查看数据
头尾数据
head和tail查看头尾几行数据,默认为5。
df.head()
A | B | C | D | |
---|---|---|---|---|
2018-01-01 | 0.276367 | 0.235869 | -0.863373 | 0.785798 |
2018-01-02 | -0.585890 | 0.142942 | -0.504779 | -1.370040 |
2018-01-03 | -0.607308 | -0.983548 | 0.310815 | 0.338497 |
2018-01-04 | 0.025879 | -0.442640 | -0.862432 | 1.204614 |
2018-01-05 | -0.278121 | 0.272711 | 0.491046 | -0.114447 |
df.tail(3)
A | B | C | D | |
---|---|---|---|---|
2018-01-04 | 0.025879 | -0.442640 | -0.862432 | 1.204614 |
2018-01-05 | -0.278121 | 0.272711 | 0.491046 | -0.114447 |
2018-01-06 | -0.042118 | -0.761489 | -2.086405 | -0.566671 |
下标,列标,数据
下标使用index
df.index
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04','2018-01-05', '2018-01-06'],dtype='datetime64[ns]', freq='D')
列标使用columns属性查看
df.columns
Index(['A', 'B', 'C', 'D'], dtype='object')
数据值使用values查看
df.values
array([[ 0.27636662, 0.23586885, -0.86337336, 0.78579775],[-0.58588988, 0.14294223, -0.50477922, -1.37003977],[-0.60730841, -0.98354839, 0.31081542, 0.33849741],[ 0.02587881, -0.44264039, -0.86243218, 1.20461397],[-0.27812082, 0.27271064, 0.49104565, -0.11444685],[-0.04211835, -0.76148874, -2.0864052 , -0.56667069]])
Pandas读取数据及数据操作
df=pd.read_excel('豆瓣电影数据.xlsx')
行操作
df.iloc[0]
名字 肖申克的救赎
投票人数 692795
类型 剧情/犯罪
产地 美国
上映时间 1994-09-10 00:00:00
时长 142
年代 1994
评分 9.6
首映地点 多伦多电影节
Name: 0, dtype: object
df.iloc[0:5]
名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|
0 | 肖申克的救赎 | 692795.0 | 剧情/犯罪 | 美国 | 1994-09-10 00:00:00 | 142 | 1994 | 9.6 | 多伦多电影节 |
1 | 控方证人 | 42995.0 | 剧情/悬疑/犯罪 | 美国 | 1957-12-17 00:00:00 | 116 | 1957 | 9.5 | 美国 |
2 | 美丽人生 | 327855.0 | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 00:00:00 | 116 | 1997 | 9.5 | 意大利 |
3 | 阿甘正传 | 580897.0 | 剧情/爱情 | 美国 | 1994-06-23 00:00:00 | 142 | 1994 | 9.4 | 洛杉矶首映 |
4 | 霸王别姬 | 478523.0 | 剧情/爱情/同性 | 中国大陆 | 1993-01-01 00:00:00 | 171 | 1993 | 9.4 | 香港 |
iloc与loc的区别(loc左闭右闭的区间)
df.loc[0:5]
名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|
0 | 肖申克的救赎 | 692795.0 | 剧情/犯罪 | 美国 | 1994-09-10 00:00:00 | 142 | 1994 | 9.6 | 多伦多电影节 |
1 | 控方证人 | 42995.0 | 剧情/悬疑/犯罪 | 美国 | 1957-12-17 00:00:00 | 116 | 1957 | 9.5 | 美国 |
2 | 美丽人生 | 327855.0 | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 00:00:00 | 116 | 1997 | 9.5 | 意大利 |
3 | 阿甘正传 | 580897.0 | 剧情/爱情 | 美国 | 1994-06-23 00:00:00 | 142 | 1994 | 9.4 | 洛杉矶首映 |
4 | 霸王别姬 | 478523.0 | 剧情/爱情/同性 | 中国大陆 | 1993-01-01 00:00:00 | 171 | 1993 | 9.4 | 香港 |
5 | 泰坦尼克号 | 157074.0 | 剧情/爱情/灾难 | 美国 | 2012-04-10 00:00:00 | 194 | 2012 | 9.4 | 中国大陆 |
添加一行
dic={'名字':'复仇者联盟3','投票人数':123456,'类型':'剧情/科幻','产地':'美国','上映时间':2018-5-4,'时长':142,'年代':2018,'评分':np.nan,'首映地点':'美国'}
s=pd.Series(dic)
s.name=38738
s
名字 复仇者联盟3
投票人数 123456
类型 剧情/科幻
产地 美国
上映时间 2009
时长 142
年代 2018
评分 NaN
首映地点 美国
Name: 38738, dtype: object
df=df.append(s)
df.tail(1)
Unnamed: 0 | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|---|
38738 | NaN | 复仇者联盟3 | 123456.0 | 剧情/科幻 | 美国 | 2009 | 142 | 2018 | NaN | 美国 |
删除一行
df = df.drop([38738])
df.tail(5)
名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|
38733 | 神学院 S | 46.0 | Adult | 法国 | 1905-06-05 00:00:00 | 58 | 1983 | 8.6 | 美国 |
38734 | 1935年 | 57.0 | 喜剧/歌舞 | 美国 | 1935-03-15 00:00:00 | 98 | 1935 | 7.6 | 美国 |
38735 | 血溅画屏 | 95.0 | 剧情/悬疑/犯罪/武侠/古装 | 中国大陆 | 1905-06-08 00:00:00 | 91 | 1986 | 7.1 | 美国 |
38736 | 魔窟中的幻想 | 51.0 | 惊悚/恐怖/儿童 | 中国大陆 | 1905-06-08 00:00:00 | 78 | 1986 | 8.0 | 美国 |
38737 | 列宁格勒围困之星火战役 Блокада: Фильм 2: Ленинградский ме... | 32.0 | 剧情/战争 | 苏联 | 1905-05-30 00:00:00 | 97 | 1977 | 6.6 | 美国 |
列操作
df.columns
Index(['名字', '投票人数', '类型', '产地', '上映时间', '时长', '年代', '评分', '首映地点'], dtype='object')
df['名字'][:5]
0 肖申克的救赎
1 控方证人
2 美丽人生
3 阿甘正传
4 霸王别姬
Name: 名字, dtype: object
增加列
df['序号']=range(1,len(df)+1)
df.head()
名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | 序号 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 肖申克的救赎 | 692795.0 | 剧情/犯罪 | 美国 | 1994-09-10 00:00:00 | 142 | 1994 | 9.6 | 多伦多电影节 | 1 |
1 | 控方证人 | 42995.0 | 剧情/悬疑/犯罪 | 美国 | 1957-12-17 00:00:00 | 116 | 1957 | 9.5 | 美国 | 2 |
2 | 美丽人生 | 327855.0 | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 00:00:00 | 116 | 1997 | 9.5 | 意大利 | 3 |
3 | 阿甘正传 | 580897.0 | 剧情/爱情 | 美国 | 1994-06-23 00:00:00 | 142 | 1994 | 9.4 | 洛杉矶首映 | 4 |
4 | 霸王别姬 | 478523.0 | 剧情/爱情/同性 | 中国大陆 | 1993-01-01 00:00:00 | 171 | 1993 | 9.4 | 香港 | 5 |
删除列
df = df.drop('序号',axis=1)
df[-5:]
名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|
38733 | 神学院 S | 46.0 | Adult | 法国 | 1905-06-05 00:00:00 | 58 | 1983 | 8.6 | 美国 |
38734 | 1935年 | 57.0 | 喜剧/歌舞 | 美国 | 1935-03-15 00:00:00 | 98 | 1935 | 7.6 | 美国 |
38735 | 血溅画屏 | 95.0 | 剧情/悬疑/犯罪/武侠/古装 | 中国大陆 | 1905-06-08 00:00:00 | 91 | 1986 | 7.1 | 美国 |
38736 | 魔窟中的幻想 | 51.0 | 惊悚/恐怖/儿童 | 中国大陆 | 1905-06-08 00:00:00 | 78 | 1986 | 8.0 | 美国 |
38737 | 列宁格勒围困之星火战役 Блокада: Фильм 2: Ленинградский ме... | 32.0 | 剧情/战争 | 苏联 | 1905-05-30 00:00:00 | 97 | 1977 | 6.6 | 美国 |
通过标签选择数据
df.loc[[index],[colunm]] 通过标签选择数据
df.loc[1,'名字']
'控方证人'
df.loc[[1,3,5,7,9],['名字','评分']]
名字 | 评分 | |
---|---|---|
1 | 控方证人 | 9.5 |
3 | 阿甘正传 | 9.4 |
5 | 泰坦尼克号 | 9.4 |
7 | 新世纪福音战士剧场版:Air/真心为你 新世紀エヴァンゲリオン劇場版 Ai | 9.4 |
9 | 这个杀手不太冷 | 9.4 |
条件选择
选择产地为美国的电影
df[df['产地']=='美国'][:5]
Unnamed: 0 | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 肖申克的救赎 | 692795.0 | 剧情/犯罪 | 美国 | 1994-09-10 00:00:00 | 142 | 1994 | 9.6 | 多伦多电影节 |
1 | 1 | 控方证人 | 42995.0 | 剧情/悬疑/犯罪 | 美国 | 1957-12-17 00:00:00 | 116 | 1957 | 9.5 | 美国 |
3 | 3 | 阿甘正传 | 580897.0 | 剧情/爱情 | 美国 | 1994-06-23 00:00:00 | 142 | 1994 | 9.4 | 洛杉矶首映 |
5 | 5 | 泰坦尼克号 | 157074.0 | 剧情/爱情/灾难 | 美国 | 2012-04-10 00:00:00 | 194 | 2012 | 9.4 | 中国大陆 |
6 | 6 | 辛德勒的名单 | 306904.0 | 剧情/历史/战争 | 美国 | 1993-11-30 00:00:00 | 195 | 1993 | 9.4 | 华盛顿首映 |
选择产地为美国的电影,并且评分大于9分
df[(df['产地']=='美国')&(df['评分']>9)][:5]
Unnamed: 0 | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 肖申克的救赎 | 692795.0 | 剧情/犯罪 | 美国 | 1994-09-10 00:00:00 | 142 | 1994 | 9.6 | 多伦多电影节 |
1 | 1 | 控方证人 | 42995.0 | 剧情/悬疑/犯罪 | 美国 | 1957-12-17 00:00:00 | 116 | 1957 | 9.5 | 美国 |
3 | 3 | 阿甘正传 | 580897.0 | 剧情/爱情 | 美国 | 1994-06-23 00:00:00 | 142 | 1994 | 9.4 | 洛杉矶首映 |
5 | 5 | 泰坦尼克号 | 157074.0 | 剧情/爱情/灾难 | 美国 | 2012-04-10 00:00:00 | 194 | 2012 | 9.4 | 中国大陆 |
6 | 6 | 辛德勒的名单 | 306904.0 | 剧情/历史/战争 | 美国 | 1993-11-30 00:00:00 | 195 | 1993 | 9.4 | 华盛顿首映 |
选择产地为美国或者中国大陆的电影,并且评分大于9分
df[((df.产地=='美国')|(df.产地=='中国大陆'))&(df.评分>9)][:5]
Unnamed: 0 | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 肖申克的救赎 | 692795.0 | 剧情/犯罪 | 美国 | 1994-09-10 00:00:00 | 142 | 1994 | 9.6 | 多伦多电影节 |
1 | 1 | 控方证人 | 42995.0 | 剧情/悬疑/犯罪 | 美国 | 1957-12-17 00:00:00 | 116 | 1957 | 9.5 | 美国 |
3 | 3 | 阿甘正传 | 580897.0 | 剧情/爱情 | 美国 | 1994-06-23 00:00:00 | 142 | 1994 | 9.4 | 洛杉矶首映 |
4 | 4 | 霸王别姬 | 478523.0 | 剧情/爱情/同性 | 中国大陆 | 1993-01-01 00:00:00 | 171 | 1993 | 9.4 | 香港 |
5 | 5 | 泰坦尼克号 | 157074.0 | 剧情/爱情/灾难 | 美国 | 2012-04-10 00:00:00 | 194 | 2012 | 9.4 | 中国大陆 |
缺失值及异常值处理方法
缺失值处理方法
方法 说明
dropna 删除缺失值
fillna 填充缺失值
isnull 返回布尔值对象,判断缺失值
notnull isnull的否定式
判断缺失值
df[df['评分'].isnull()][:10]
Unnamed: 0 | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|---|
38738 | NaN | 复仇者联盟3 | 123456.0 | 剧情/科幻 | 美国 | 2009 | 142 | 2018 | NaN | 美国 |
填充缺失值
df['评分'].fillna(np.mean(df['评分']),inplace=True)
df[-5:]
Unnamed: 0 | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|---|
38734 | 38734.0 | 1935年 | 57.0 | 喜剧/歌舞 | 美国 | 1935-03-15 00:00:00 | 98 | 1935 | 7.600000 | 美国 |
38735 | 38735.0 | 血溅画屏 | 95.0 | 剧情/悬疑/犯罪/武侠/古装 | 中国大陆 | 1905-06-08 00:00:00 | 91 | 1986 | 7.100000 | 美国 |
38736 | 38736.0 | 魔窟中的幻想 | 51.0 | 惊悚/恐怖/儿童 | 中国大陆 | 1905-06-08 00:00:00 | 78 | 1986 | 8.000000 | 美国 |
38737 | 38737.0 | 列宁格勒围困之星火战役 Блокада: Фильм 2: Ленинградский ме... | 32.0 | 剧情/战争 | 苏联 | 1905-05-30 00:00:00 | 97 | 1977 | 6.600000 | 美国 |
38738 | NaN | 复仇者联盟3 | 123456.0 | 剧情/科幻 | 美国 | 2009 | 142 | 2018 | 6.935704 | 美国 |
删除缺失值
df.dropna() 参数
how=‘all’ 删除全为空值的行或者列
inplace=True 覆盖之前的数据
axis=0 选择行或者列
处理异常值
df[df.投票人数<0]
Unnamed: 0 | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | 首映地点 | |
---|---|---|---|---|---|---|---|---|---|---|
19777 | 19777.0 | 皇家大贼 皇家大 | -80.0 | 剧情/犯罪 | 中国香港 | 1985-05-31 00:00:00 | 60 | 1985 | 6.3 | 美国 |
19786 | 19786.0 | 日本的垃圾去中国大陆 にっぽんの“ゴミ” 大陆へ渡る ~中国式リサイクル錬 | -80.0 | 纪录片 | 日本 | 1905-06-26 00:00:00 | 60 | 2004 | 7.9 | 美国 |
19797 | 19797.0 | 女教徒 | -118.0 | 剧情 | 法国 | 1966-05-06 00:00:00 | 135 | 1966 | 7.8 | 美国 |
数据保存
df.to_excel('moive_data.xlsx')
Pnadas学习day-01相关推荐
- JavaWeb黑马旅游网-学习笔记01【准备工作】
Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...
- JavaWeb-综合案例(用户信息)-学习笔记01【列表查询】
Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...
- Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】
Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...
- Tomcat学习笔记01【Web相关概念、Tomcat基本操作】
Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...
- XML学习笔记01【xml_基础、xml_约束】
Java后端 学习路线 笔记汇总表[黑马程序员] XML学习笔记01[xml_基础.xml_约束][day01] XML学习笔记02[xml_解析][day01] 目录 01 xml_基础 今日内容 ...
- Bootstrap学习笔记01【快速入门、栅格布局】
Java后端 学习路线 笔记汇总表[黑马程序员] Bootstrap学习笔记01[快速入门.栅格布局][day01] Bootstrap学习笔记02[全局CSS样式.组件和插件.案例_黑马旅游网][d ...
- JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
- HTML/CSS学习笔记01【概念介绍、基本标签】
w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...
- JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- MySQL学习笔记01【数据库概念、MySQL安装与使用】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
最新文章
- NSStream线程阻塞处理
- 完整iOS APP发布App Store上架流程
- docker save 与 docker export 的区别
- 局域网内连接MySQL
- 【C语言笔记初级篇】第一章:C语言快速入门及注意事项
- 更改计算机语言win7,windows7专业版怎么更改语言_如何更改windows7专业版语言
- java nat 端口转发_NAT网络地址转换——静态NAT,端口映射(实操!!)
- 硬盘分区表和文件分配表格式
- 不属于python标准库的是_下列哪项不是Python标准库中处理到程序中参量的模块?...
- 谭浩强c语言入门prd,完整C语言谭浩强学习笔记.docx
- 官方授权正版 Avast AntiTrack Premium 反跟踪工具软件
- QListView自定义Item
- ASP发送邮件的代码
- FFmpeg采集树莓派USB摄像头(UVC摄像头)
- java根据身份证号判断用户性别
- 南丁格尔玫瑰图的Python
- educoder 2-2Python 计算思维训练——循环与列表(二)
- 自建CA给内部网站颁发SSL证书
- 【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)
- 解锁京东云底层技术密码:京东四大数智供应链技术亮相