【问题标题】:Pandas df.apply does not modify DataFramePandas df.apply 不修改 DataFrame
【发布时间】:2017-11-01 12:57:00
【问题描述】:

我刚刚开始使用 pandas,所以如果这是愚蠢的,请原谅。

我正在尝试将函数应用于列,但它不起作用,我也没有看到任何错误。

 capitalizer = lambda x: x.upper()
    for df in pd.read_csv(downloaded_file, chunksize=2, compression='gzip', low_memory=False):
        df['level1'].apply(capitalizer)
        print df
        exit(1)

此打印显示 level1 列值与原始 csv 相同,但未执行 upper。我在这里错过了什么吗?

谢谢

【问题讨论】:

    标签: python pandas dataframe apply


    【解决方案1】:

    apply 不是 inplace 函数 - 它不会修改原始对象中的值,因此您需要将其重新赋值:

    df['level1'] = df['level1'].apply(capitalizer)
    

    或者,您可以使用str.upper,它应该会更快。

    df['level1'] = df['level1'].str.upper()
    

    【讨论】:

      【解决方案2】:
      df['level1'] = map(lambda x: x.upper(), df['level1'])
      

      您可以使用上面的代码将您的列设为大写

      【讨论】:

        猜你喜欢
        • 2019-02-26
        • 2022-01-02
        • 1970-01-01
        • 2019-03-19
        • 2017-03-11
        • 2018-01-18
        • 1970-01-01
        • 2016-12-26
        • 2018-01-15
        相关资源
        最近更新 更多