Python 接收错误的原因:模块‘;字符串’;没有属性‘;下’;我什么时候用熊猫?

Python 接收错误的原因:模块‘;字符串’;没有属性‘;下’;我什么时候用熊猫?,python,pandas,jupyter-notebook,Python,Pandas,Jupyter Notebook,我是新的编码。我正在学习数据科学课程,目前正在学习熊猫入门模块 我用Anaconda下载Jupiter笔记本 我试图将一列的所有字符串更改为大写或小写,但收到错误:“AttributeError:module'string'没有属性'lower' 我试着用“上”而不是“下”,我收到了同样的错误 我尝试了:从字符串导入上限返回: ImportError:无法从“字符串”(C:\Users\gustavo\anaconda3\lib\string.py)导入名称“upper” 然后我尝试导入字符串,

我是新的编码。我正在学习数据科学课程,目前正在学习熊猫入门模块

我用Anaconda下载Jupiter笔记本

我试图将一列的所有字符串更改为大写或小写,但收到错误:“AttributeError:module'string'没有属性'lower'

我试着用“上”而不是“下”,我收到了同样的错误

我尝试了:
从字符串导入上限
返回: ImportError:无法从“字符串”(C:\Users\gustavo\anaconda3\lib\string.py)导入名称“upper”

然后我尝试导入字符串,但没有收到任何错误,但当我尝试:
df['estado']=df.estado.apply[string.upper]
时,出现错误:AttributeError:module'string'没有属性'upper'

我在youtube上查看了很多视频,用谷歌搜索了错误,但我不知道如何解决它


有人能帮我吗?

您需要给一对括号,因为string.upper()是一个函数:

df[‘estado’] = df.estado.apply[string.upper()]

要将pandas列小写,可以使用
.str.lower()
,如文档()所示:

如果要将整个数据集小写,可以将
apply()
asytpe()
结合使用:


string.upper
string.lower
在python2中。它们已从python3中删除,因此导入
失败

有几种选择:

如果您想要一行插入式修复,可以替换

from string import lower

为此:

lower=str.lower

更好的解决方案是在任何地方修改您的用法,以使用方法而不是函数,因此将
lower(s)
替换为
s.lower()


更重要的是,您遇到的错误表明您可能正在使用需要移植到python3的代码。请参见

在Python 2.7之后,此方法似乎已被弃用,如中所示,但在或更高版本中没有

在这种情况下,您不再需要执行导入。至少对于Python 3.9,执行操作的代码如下:

df['estado'] = df.estado.apply(str.upper)

我想你误解了什么<代码>字符串
是一个模块,不是实际的数据类型。在python中,字符串数据类型(即形成某些文本的字符序列)称为
str
而不是
string
<代码>字符串只是一个包含一些有用常量等的模块。例如试试
a=“hello”;print(a.upper())
你好,哈利,谢谢你的帮助。我尝试了您的建议,但仍然收到相同的错误:AttributeError:module'string'没有属性'upper'。唯一的问题是,只返回我要更改为小写的列,如何在我的数据框中获取所有原始列,只将一列更改为小写?您可以使用df['columname']=df['columname'].str.lower()
df = df.apply(lambda x: x.astype(str).str.lower())
df['estado'] = df.estado.apply(str.upper)