【发布时间】:2018-02-28 17:02:25
【问题描述】:
我有一个 pandas DataFrame,其邮政编码的开头按地区区分,格式如下:
region A 385
region B 656 - 659
我需要用破折号解开数据,所以它将是:
region B 656, 657, 658, 659
我的代码
postcodes.iloc[:,1] = postcodes.iloc[:,1].apply(lambda x: x.split('—'))
def unwrap_codes(row):
row = row['Postcode begins with']
if len(row) > 1:
for x, y in row:
while x != y:
row.append(x=+1)
postcodes['Unwraped'] = postcodes.apply(unwrap_codes, axis=1)
返回一个 ValueError: ('太多的值需要解压 (预期 2)' 你能帮我处理这个错误吗?
【问题讨论】:
-
缩进不正确.. 错误告诉您行中的每个条目中有两个以上的元素。
-
在迭代列表时不应修改列表。您应该使用另一个对象,例如堆栈。当您开始迭代列表时,它可能有 2 个元素,但随着时间的推移您正在添加更多元素,这就是问题所在。可能重复stackoverflow.com/questions/6294983/…
标签: python pandas for-loop dataframe