如何在Pandas方法链中为去缺失值并重置索引后的DataFrame添加PKID列
合并Pandas方法链创建PKID列
原始DataFrame
pid name kids_count 10 tom 2 21 bill 0 22 peter NaT 81 jen 4 20 jerry 1
当前实现代码
person_data = (person_data .dropna() .reset_index(drop = True) ) person_data = (person_data .assign(PKID = person_data.index + 1 ))
需求
将上述两行方法链合并为一行,在assign中直接使用经过dropna()和reset_index()处理后的DataFrame生成PKID列。
解决方案
你可以在assign中使用lambda表达式引用当前方法链中已处理好的DataFrame对象,直接基于处理后的索引生成PKID:
person_data = (person_data .dropna() .reset_index(drop=True) .assign(PKID=lambda df: df.index + 1) )
说明
lambda里的df代表经过前面dropna()和reset_index()处理后的DataFrame,调用它的index再加1就能生成从1开始的PKID列,完美实现一行方法链的需求。
内容的提问来源于stack exchange,提问作者Eisen
相关产品推荐
相关产品推荐

