如何使用通过函数(python)操作过的数据框

时间:2018-07-12 20:38:23

标签: python function dataframe

我正在研究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)

...它为我提供了一个很好的1966年的干净数据集,我想在下游使用。

我以后的函数将USETHISDF称为要在其上进行操作的数据帧的标题。因此,这次我想使用我漂亮的全新df1966,所以我重新定义了它:

 cleanupdataset(df1966)

 USETHISDF = df1966

但是当我调用它以检查它是否被清除时...

 USETHISDF
它使用的

给了我df1966的未清洗版本。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您的函数不会就地更改初始数据框,而是返回一个新的数据框。为了查看更改,您必须使用函数的返回值:

uniqueidentifier