«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как вставлять списки в ячейки DataFrame Pandas без ошибок?

Как вставлять списки в ячейки DataFrame Pandas без ошибок?

Опубликовано 6 ноября 2024 г.
Просматривать:950

How to Insert Lists into Pandas DataFrame Cells Without Errors?

Вставка списков в ячейки Pandas

Проблема

В Python попытка вставить список в ячейку Pandas DataFrame может привести к ошибкам или неожиданные результаты. Например, при попытке вставить список в ячейку 1B DataFrame df:

df = pd.DataFrame({'A': [12, 23], 'B': [np.nan, np.nan]})
abc = ['foo', 'bar']

Следующие попытки вставить список abc в 1B, но приводят к ошибкам или неправильной вставке:

  1. df.ix[1 ,'B'] = abc - Ошибка: при настройке с помощью итерируемого элемента должны быть одинаковые ключи и значения длины.
  2. df.ix[1,'B'] = [abc] - Вставляет список с одним элементом: [['foo', 'bar']]
  3. df.ix[1,'B'] = ', '.join(abc) — вставляет строку: "foo, bar"
  4. df.ix[1,'B'] = [', '.join(abc)] — вставляет список с одним элементом: ['foo, bar']

Решение

Чтобы без ошибок вставлять списки в ячейки DataFrame, используйте метод at, который всегда ссылается на одно значение:

df.at[1, 'B'] = ['foo', 'bar']

Это вставит список abc в 1B, как и ожидалось:

    A  B
0  12  NaN
1  23  ['foo', 'bar']

Обратите внимание, что столбец DataFrame должен иметь dtype=object, чтобы разрешить вставку списка. Например:

df['B'] = df['B'].astype('object')
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3