我正在写Jupyter Notebook。我有多个数据帧,其中我正在比较它们之间的数据。在比较这些数据帧之间的数据之前,我需要清理一些字符串。我需要删除双引号("),并且需要删除空单元格中的NaN值。
为了对一个名为df1970的数据帧执行此操作,我创建了两个函数:
df1970['Title'] = pd.Series(df1970['Title']).str.replace('"', '')
df1970= df1970.replace(np.nan, "", regex=True)
当我提到df1970下游时,它给出了清理后的数据帧。但是,我有一个标题为df1966的数据集,我想删除双引号并替换NaN,而不需要再次键入上面的整个代码。所以我创建了一个函数:
def cleanupdataset(df):
df['Title'] = pd.Series(df['Title']).str.replace('"','')
df= df.replace(np.nan, "", regex=True)
return df
然后,当我调用时:
cleanupdataset(df1966)
...it给了我一个很好的,干净的1966年的数据集,我想要在下游使用。
后面的函数调用USETHISDF作为要操作的数据帧的标题。所以这一次我想使用我漂亮的新的干净的df1966,所以我重新定义了它:
cleanupdataset(df1966)
USETHISDF = df1966
但是当我调用它来检查它是否被清洗的时候...
USETHISDF
它使用的是df1966的非清理版本。我做错了什么?
https://stackoverflow.com/questions/51314075
复制相似问题