python - Pandas df.apply 不修改 DataFrame

标签 python pandas dataframe apply

我刚刚开始使用 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 列值与未执行 upper 的原始 csv 相同。我在这里遗漏了什么吗?

谢谢

最佳答案

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

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

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

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

关于python - Pandas df.apply 不修改 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47055426/

相关文章:

python - Pandas 群体内的变量转移

Python Pandas,将表格更改为百分比而不是单个结果

python - QTableView 上的 PySide 委托(delegate),带有文本和勾号

python - 3D 体积的时间序列插值(MATLAB 或 Python)

python - 不正确且奇怪的 UNIX 时间到日期时间 Pandas 的转换

python - 使用 Python 两次溢出列

python - 按标签选择的 Pandas 有时会返回 Series,有时会返回 DataFrame

python - Pandas :在分隔符的基础上过滤特定列中数据的行

r - 在R中访问列表元素的正确方法

python - 在 sqlalchemy 中设置默认值