gpt4 book ai didi

Python数据框: Create function that makes all values in one column uppercase

转载 作者:行者123 更新时间:2023-11-30 22:24:16 25 4
gpt4 key购买 nike

我有两个 python 数据框。我想将两个数据框的一列中的所有值都设为大写。

以下代码有效:

df_ERA4['reqmnt'] = df_ERA4['reqmnt'].str.upper()
df_ERA5['reqmnt'] = df_ERA5['reqmnt'].str.upper()

但是当我想在函数中做同样的事情时,它不起作用:

def uppercase(df):
df['reqmnt'] = df['reqmnt'].str.upper()

df_ERA4 = uppercase(df_ERA4)
df_ERA5 = uppercase(df_ERA5)

df_ERA4.head()

具体来说,当我运行上面的代码时,它给出以下错误: AttributeError: 'NoneType' object has no attribute 'head'

最佳答案

默认情况下,您的函数不返回任何内容。因此,默认情况下,它返回 None。调用函数时,正确的做法是不要将返回值分配给任何内容,因为更改是就地进行的。

现在有几个选择。第一个是:不返回任何内容,也不分配任何内容。

def upper(df, col):
df[col] = df[col].str.upper()

upper(df, 'reqmnt')

但是,这可能不是最好的方法(就我个人而言,我不太喜欢执行就地操作的函数)。或者,您可以通过 assign 调用返回一个副本。

def upper(df, col):
return df.assign(**{col : df[col].str.upper()})

df = upper(df, 'reqmnt')

请注意,这方面有一个警告 - assign 返回一个副本,有时,在效率/性能至关重要的情况下,您不希望不必要地制作 GB 数据的副本。使用什么应该根据风格和需求来决定。

关于Python数据框: Create function that makes all values in one column uppercase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47875208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com