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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (200)

我正在研究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的非清洁版本。我究竟做错了什么?

提问于
用户回答回答于

您的函数不会就地更改初始数据框,但会返回新的数据框。要查看更改,您必须使用函数的返回值:

USETHISDF = cleanupdataset(df1966)

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励