人工智能通识

【编程】8行Python代码实现excel两个sheet表合并

2020-03-29  本文已影响0人  zhyuzh3d

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】


问题分析

怎么把两个sheet表的数据合并到一起?
先看问题。我们的excel文件有两个个sheet表,a和b。

这里存在着一些情况:

我们期望的结果是下图这样,把a和b以name为索引,a和b对应合并成一张8个人的表。

可能方法

使用Notebook的Pandas

先把数据读进来看一下。sheet_name参数指定读哪个表。

同样读取b表看看。

使用merge把两个表合并到一起,on是指定索引列名称,how='left'是以a表为基础,indicator是显示_merge列的情况。

注意到出了两个age列,age_x和age_y。重建新的age列,优先使用age_y的值,如果是空NaN就是使用age_x的8。

最后drop删除掉age_x和age_y两列,保存即可。

汇总所有代码共8行:

import pandas as pd
import numpy as np
df1 = pd.read_excel('./orgdata.xlsx', sheet_name='a', index_col=0)
df2 = pd.read_excel('./orgdata.xlsx', sheet_name='b', index_col=0)
df = pd.merge(df1, df2, on='name', how='left')
df['age'] = df.apply(lambda x: x['age_x']if pd.isna(x['age_y']) else x['age_y'],axis=1)
df = df.drop(columns=['age_x', 'age_y'])
df.to_excel('data.xls')

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】


每个人的智能新时代

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~


END

上一篇 下一篇

猜你喜欢

热点阅读