Ошибка значения: столбцы должны быть той же длины, что и ключ —- Почему это происходит?

#python #pandas #dataframe

#python #панды #фрейм данных

Вопрос:

 df['location'] = df['Address'].apply(geocode)
df['point'] = df['location'].apply(lambda loc: tuple(loc.point) if loc else None)
df[['latitude', 'longitude', 'altitude']] = pd.DataFrame(df['point'].tolist(), index=df.index)
  

У меня есть только один столбец с именем address, но я не уверен, почему я получаю эту ошибку. Пробовал очищать и проверял запуск только с одной записью, но ошибка сохраняется. Но внезапно для нескольких наборов данных все сработало нормально. Помогите мне понять, спасибо

Комментарии:

1. проверьте isinstance(df.columns, pd.MultiIndex)

2. Результат False …. Не могли бы вы помочь мне понять, как это мне помогает. Я новичок в python. Спасибо

3. Вы уверены, что tuple(loc.point) это всегда возвращает кортеж len= 3 ? После второй строки вы можете проверить, выполнив df[df.point.apply(len) != 3] поиск, чтобы найти любые строки-виновники. По сути, если вы пытаетесь назначить фрейм данных с более чем 3 столбцами (правая сторона) на 3 столбца (левая сторона), вы получите эту ошибку.