[英]Python Pandas DataFrame User Defined Function Transformations
[英]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.