实验二 使用pandas进行数据合并
一、实验目的
练习使用pands进行数据合并和修补数据。
二、实验内容
根据下面的内容完成以下任务:
(1) 任务一:合并商品销售数据
(2) 任务二:合并成绩表
(3)任务三:修补统计数据
三、实验代码
任务一代码:
import pandas as pd
df_7 = pd.DataFrame({'品牌':['鸿星尔克','安踏','李宁'],
'销售量':['1000','324','256'],})
df_7
df_8 = pd.DataFrame({'品牌':['李宁','安踏','特步'],
'销售量':['500','450','368'],})
df_8
df_9 = pd.DataFrame({'品牌':['安踏','361','回力'],
'销售量':['245','180','123'],})
df_9
df_all =pd.concat([df_7,df_8,df_9],axis=1,keys=['7月','8月','9月'])
df_all
df_7.rename(index={0:'鸿星尔克',1:'安踏',2:'李宁'},inplace=True)
df_8.rename(index={0:'李宁',1:'安踏',2:'特步'},inplace=True)
df_9.rename(index={0:'安踏',1:'361',2:'回力'},inplace=True)
df_top3=pd.concat([df_7['销售量'],df_8['销售量'],df_9['销售量']],
axis=1,join='inner',keys=['7月','8月','9月'])
df_top3
任务二代码:
import pandas as pd
df_stu = pd.DataFrame({'id':[1,2,3,4],'name':['小明','小王','小李','小赵'],})
df_stu
df_java = pd.DataFrame({'id':[1,2,4],'Java':[88,90,88],'Web开发':[92,85,83],})
df_java
df_python = pd.DataFrame({'id':[1,3,4],'python':[91,92,88],'爬虫技术':[88,90,85],})
df_python
df_jp=pd.merge(df_java,df_python,how='inner',on='id')
df_jp
df_stu_jp=pd.merge(df_stu,df_jp)
df_stu_jp
df_java_all=pd.merge(df_java,df_python,how='left',on='id')
df_java_all
df_python_all=pd.merge(df_java,df_python,how='right',on='id')
df_python_all
df_all=pd.merge(df_java,df_python,how='outer',on='id')
df_all
任务三代码:
import pandas as pd
df1 = pd.read_excel('t2.xls')
df1.head()
df1.isnull().any()
df2 = pd.read_excel('t2.xls')
df2.head()
df2.isnull().any()
df3=df1.combine_first(df2)
df3.isnull().any()
df3.to_excel('t3.xlsx')
df3
四、实验结果
(1) 任务一
(2) 任务二
(3) 任务三
五、出现的问题和解决方法
出现的问题:"No such keys(s): 'io.excel.xls.writer'" 错误表明尝试使用xls格式的Excel写入器,但可能未正确配置或安装。
解决办法:从错误信息中可以看出,Pandas 正在尝试使用io.excel.xls.writer,但这可能是因为新版本的 Pandas 已经不再支持对 .xls 格式的写入。推荐使用 .xlsx 格式,因为它支持更多的特性。
将文件扩展名更改为 .xlsx,然后再次运行代码。如,df3.to_excel('t3.xlsx')。数据成功写入。
六、实验心得
通过本次实验,让我学会了使用pands进行数据合并和修补数据。成功的合并商品销售数据、合并成绩表以及修补统计数据。让我理解到pandas用于数据处理的强大功能。