【发布时间】:2023-01-05 02:58:32
【问题描述】:
我正在尝试将一系列市场转换为大写,以便与 zip 字典匹配。当我遍历字符串并转换为大写时,它工作正常,如下所示:
def uppercase(series):
for string in series:
print(string.upper())
uppercase(markets.County)
但是当我尝试将其附加到新列表或使用列表理解时,它失败了:
def uppercase(series):
string_upper = []
for string in series:
string_upper.append(string.upper())
uppercase(markets.County)
由于属性错误,它无法将句点转换为大写。但它只是在上面的代码中做到了这一点。
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-25-2c8a689b8491> in <module>
6 string_upper.append(string.upper())
7
----> 8 uppercase(markets.County)
<ipython-input-25-2c8a689b8491> in uppercase(series)
4
5 for string in series:
----> 6 string_upper.append(string.upper())
7
8 uppercase(markets.County)
AttributeError: 'float' object has no attribute 'upper'
这似乎是一个 2 秒的简单解决方案。为什么必须附加新数据时会失败?
【问题讨论】:
-
string_upper.append(字符串)
-
错误很明显。在您的系列中,您有不是字符串的对象。您应该在使用
.upper()方法之前进行检查。使用 try/except 块来查找问题,或者当对象是字符串时简单地转换为 upper。
标签: python string uppercase data-wrangling