gpt4 book ai didi

python - 迭代从 excel 文件列创建的 pandas 数据框时出错

转载 作者:太空宇宙 更新时间:2023-11-04 04:29:14 24 4
gpt4 key购买 nike

我正在将 excel 文件列读入 pandas dataframe。这是我为此编写的代码:

df = pd.ExcelFile('address.xlsx').parse('sheet1')  

x = df['Address']
print(x)

以上代码的输出是:

0                         Via abc che - 66110 Chi
1 Via vivo, 44\n65125 Paris (PR)
2 Via vivo, 44\n65125 Pesc (PI)
3 Contrada contra\n64100 Term (PI)
4 Via Mvico\n75025 Poli (PR)

每一行只有一个项目,是一个地址。现在我想要做的是遍历此 dataframe 的每一行,获取地址,然后从该地址中提取邮政编码。我为此编写了这段代码:

for index ,row in x:
reg = re.compile('^.*(?P<zipcode>\d{5}).*$')
match = reg.match(row[0])
fitered_match = match.groupdict().zipcode
print(fitered_match)

当我执行此操作时,出现错误,如 ValueError: too many values to unpack (expected 2)

我无法理解:

  1. 为什么会出现这个错误?
  2. 我从地址中提取邮政编码的逻辑是否正确?

最佳答案

您可以使用extract():

df['Zip Code'] = df['Address'].str.extract(r'(\d{5})')

产量:

                            Address Zip Code
0 Via abc che - 66110 Chi 66110
1 Via vivo, 44\n65125 Paris (PR) 65125
2 Via vivo, 44\n65125 Pesc (PI) 65125
3 Contrada contra\n64100 Term (PI) 64100
4 Via Mvico\n75025 Poli (PR) 75025

在您的原始代码中,您收到错误 ValueError: too many values to unpack (expected 2) 的原因是您没有使用 enumerate(x) ,因为您正在尝试迭代索引和值。

关于python - 迭代从 excel 文件列创建的 pandas 数据框时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52977325/

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