我正在写Jupyter笔记本。我有多个数据帧,在其中比较它们之间的数据。在比较这些数据帧之间的数据之前,我需要清理一些字符串。我需要删除双引号(“),并去掉空单元格中的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)
…它为我提供了一个非常干净的1966年数据集,我想在下游使用它
我后面的函数调用USETHISDF作为要操作的数据帧的标题。所以这一次我想用我漂亮的新的干净的df1966,所以我重新定义它:
cleanupdataset(df1966)
USETHISDF = df1966
但是当我打电话给它检查它是否干净的时候
USETHISDF
它使用的是df1966的非清洁版本。我做错了什么
您的函数不会就地更改初始数据帧,而是返回一个新的数据帧。要查看更改,必须使用函数的返回值:
相关问题 更多 >
编程相关推荐