pandas与excel生成户籍编号

一、excel生成户编号

先说在excel中,有时候需要根据户主来生成户编号,如下图:

pandas与excel生成户籍编号_第1张图片

  生成方式其实也比较简单,直接用countif函数:

pandas与excel生成户籍编号_第2张图片

 也就是通过countif依次计算“户主”出现的次数,再转换成文本格式。

总的来说,这种生成方式还是挺简单的,只是不容易想到这种方法。

二、pandas生成户编号

先准备数据:

pandas与excel生成户籍编号_第3张图片

 可以看出,我故意留了一列,就是户编码这一列,目前没有数据,现在要做的,就是根据户主出现的次数,来生成户编码,代码如下:

import pandas as pd

df = pd.read_excel("test.xlsx",header=None)
#全局变量,保存“户主”出现的次数
user_no = 0
def set_no(df):
#     每一行的行号
#     row_no = df.name
    global user_no
    if df[4]=="户主":
        user_no = user_no+1 
    return "{:0>3d}".format(user_no)#数字补0,填充左边,宽度为3

df[0]=df.apply(set_no,axis=1)

 生成结果如下:

pandas与excel生成户籍编号_第4张图片

 三、总结

可以看出,用pandas虽然也能生成户编号,但是相对excel来说,还是要复杂得多,学习成本也要高得多。excel可以用函数直接生成,而pandas必须自己手动编写函数。所以结论就是,能用 excel函数解决的问题,就不要用pandas来做,pandas适合用那种excel办不到或者不容易做的场合,比如需要用VBA宏编程的场合。

你可能感兴趣的:(python,python)