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