python练习题(三)

说明:以练习题的方式,学习python基础知识点,主要是数据分析方向常用的numpy、pandas、matplotlib等库对应的练习题。仅供参考,题目来源于网络,如有侵权请联系我删除。

Pandas基础知识:

(1)用字典数据类型创建DataFrame。 data={'state':['a','b','c','d'], 'year':[1991,1992,1993,1994], 'pop':[6,7,8,9]}

import numpy as np
import pandas as pd
data = {'state':['a','b','c','d'], 'year':[1991,1992,1993,1994], 'pop':[6,7,8,9]}
df = pd.DataFrame(data)
df

    答:Pandas中的DataFrame是个二维结构。创建方式可以采用字典创建(如题),可以采用多维数组创建,可以采用其他的DataFrame创建。

#由多维数组a创建b
a =np.array([[1,2,3],[4,5,6],[7,8,9]])
b =pd.DataFrame(a)
#或者如下格式更好看
b=pd.DataFrame(a,index=[0,1,2],columns=['one','two','three'])

#由其他DataFrame创建,深拷贝
c=b[['one','three']].copy()

(2)将创建的Dataframe的索引设置为,ABCD。并且命名为“索引”。

df.index = ['A','B','C','D']
df.index.name = '索引'

(3)在下面新增一行。然后删除。

    答:新增append(),删除drop()

#创建一行
s = pd.Series({'state':'e','year':1995,'pop':10})
s.name = 'E'
#df中增加一行
df = df.append(s)
#df中删除一行
df= df.drop(['E'])

(4)增加新的属性列,列名设置为‘port’,值均为1。

df['port']=1

(5)取出1991和1994年的数据。

df2 = df.loc[['A','D']]  #取行要.loc()
df2

(6)获取全部‘state’和‘year’的数据。

df3 =df[['state','year']]  #取列不用.loc()
df3

(7)查看每一列数据的数据格式,并且将‘pop’每个数据乘2。

#查看数据类型、格式
df.dtypes
#数据乘以2
df['pop']=df['pop']*2
df

(8)删除一列数据,port列。

df.drop(['port'],axis=1,inplace=True) #inplace=True含义为覆盖原数据,axis=1表示列
df

实战操作:

香港酒店数据,excel格式,数据地址:https://pan.baidu.com/s/1P47ICeUXyQOKr7jGkxOSPw   (百度网盘)

(1)读取香港酒店数据。

import numpy as np
import pandas as pd
data = pd.read_excel('香港酒店数据.xlsx')
data.head()  #默认查看数据前5行

(2)按照数据的内容,重新设置数据的索引,重新设置列名称为'名字','类型','城市','地区','地点','评分','评分人数','价格'。

data.columns=['名字','类型','城市','地区','地点','评分','评分人数','价格']

(3)查看所有类型为“浪漫情侣”的酒店

data[data.类型=='浪漫情侣']  #data['类型'] 与 data.类型 等效

(4)查看所有类型为“浪漫情侣”,地区在湾仔的酒店

data[(data.类型=='浪漫情侣')&(data.地区=='湾仔')]  #多个筛选条件

(5)查看所有地址在观塘或者油尖旺,评分大于4的酒店

#多个筛选条件,或的关系。注意小括号的使用
data[((data.地区=='观塘')|(data.地区=='油尖旺'))&(data.评分>4)]

(6)查看类型缺失的数据 

data[data['类型'].isnull()]

    答:注意区别isnull(),notnull(),fillna(),dropna().

(7)用“其他”填充类型和地区

data['类型'].fillna('其他',inplace=True)  #inplace=True覆盖原数据
data['地区'].fillna('其他',inplace=True)

(8)用评分均值填充缺失值

#fillna()填充,mean()均值,inplace = True覆盖原数据
data['评分'].fillna(data['评分'].mean(),inplace = True)

(9)删除价格和评分人数的缺失值

#删除缺失值dropna()
data.dropna((data.价格.isnull())&(data.评分人数.isnull()),inplace=True)

    数据删除后,索引最好重新排一下,data.index=range(0,len(data))

(10)保存到“酒店数据1.xlsx”

data.to_excel('酒店数据1.xlsx')

    答:格式除了excel外,还可以是其他格式,如csv,txt等。读写方法类似。

 

注:第三部分结束。如果想自己练习,可以到我的百度网盘下载原题,使用Jupyter notebook自己写python代码实现。加油哦!

百度网盘题目地址:https://pan.baidu.com/s/1A7JFRdaBYLlnFVn6xT_SOg

你可能感兴趣的:(python)