
先上代码
#导入padas和numpy库
import pandas as pd
import numpy as np
#读取文件内容
df1 = pd.read_excel(r'aaa.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel(r'ccc.xlsx', sheet_name='Sheet1')
# print(df1)
# print(df2)
#以df1为基础,将df2的sumif结果合并到df1
df1['订单量'] = df2.姓名.apply(lambda x : df2.订单量.loc[df2.姓名 == x].sum())
print(df1)
分段执行



代码解析
pandas中的df.loc[]主要是根据DataFrame的行标和列标进行数据的筛选:
读取整列数据用如下代码
df1.loc[:,['姓名']]
:代表所有行,[]中间写具体列名取两列,在[]内用逗号隔开:df1.loc[:,['姓名','工号']]
取指定行数据用如下代码
df1.loc[0:2]
0代表第一行2代表第三行:3代表0~4行,切片用法
取指定行列用如下代码
df1.loc[0:2,['工号']]
行列之间用逗号隔开行不加中括号列加中括号
apply函数主要用于对DataFrame中的行或者列进行特定的函数计算

lambda 函数,又称匿名函数(不需要指定函数名)。当我们需要定义一个函数时,又懒得写命名时时。就可以通过lambda实现。另外使得代码更加简洁。
匿名函数语法:
lambda(关键词):x,y,… (代表函数的入参):m(m代表返回值,即return m)
使用Python的pandas库实现类似Excel中条件求和sumif的功能。首先导入pandas和numpy,读取两个Excel文件,然后在df1中新增一列'订单量',其值为df2中对应姓名的订单量之和。通过df.loc[]结合apply函数和lambda表达式实现条件求和。
1120

被折叠的 条评论
为什么被折叠?



