繁体   English   中英

如何使用用户定义的 function (pandas python) 更新 dataframe

[英]How to update a dataframe with a user defined function (pandas python)

代码图片:-

在此处输入图像描述

当使用用户定义的 function 运行任务时,我正在努力更新原始 dataframe:

def filter_rows(df,col,string):

       df[col] = df[col].astype(str)
       df = df[~df[col].str.contains(string)]
       return df

当我在df1上运行上述 function 时,它确实返回了一个精简的版本。 但是该版本未在 main df1中更新。

 filter_rows(df1,'smoking_status','never smoked')

这意味着如果我在下一个单元格中单独查看df1 ,我仍然会看到完整的未修剪数据集。

我在可能的情况下使用了inplace=True ,但我似乎无法在这里找到一种方法。

需要一个也可以在其他情况下使用的解决方案。

提前致谢。 :)

将 dataframe 分配给 function 返回原始 dataframe。

df1 = filter_rows(df1,'smoking_status','never smoked')

在 function 中重新分配df会更改对 object 的引用。 要更好地了解通过引用传递,请参阅此 SO 答案

要在不重新分配的情况下过滤 df,您可以使用df.drop

df.drop(df[df[col].str.contains(string)].index, inplace = True)

所以你最终的 function 将是

def filter_rows(df,col,string):

       df[col] = df[col].astype(str)
       df.drop(df[df[col].str.contains(string)].index, inplace = True)
       return df

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM