У меня есть кадр данных с кортежами в ячейках:
import numpy as np
import pandas as pd
data = np.empty((3, 4), dtype=[('cost', np.int32), ('count', np.int32)])
data['count'] = 0
data['cost'] = [[10, 2, 20, 11],
[12, 7, 9, 20],
[ 2, 14, 16, 18]]
sup = [1, 2, 3]
df = pd.DataFrame(data=data.tolist(), columns=[f'{i+1}' for i in range(len(data[0]))])
df = df.join(pd.DataFrame(sup, columns=['Supplies']))
print(df)
Это дает следующий результат:
1 2 3 4 Supplies
0 (10, 0) (2, 0) (20, 0) (11, 0) 1
1 (12, 0) (7, 0) (9, 0) (20, 0) 2
2 (2, 0) (14, 0) (16, 0) (18, 0) 3
Далее я хочу обновить ячейку:
df.loc[1, '1'] = (1,2)
но я получаю ValueError: должны быть одинаковые ключи и значения len при настройке с помощью итерации
Та же проблема возникает со списком . Присвоение любых неитерируемых типов данных, таких как строка или целое число, работает хорошо.
Далее, если я удалю это соединение:
df = df.join(pd.DataFrame(sup, columns=['Supplies']))
Я могу без проблем назначать ячейки кортежами.
Я думаю, это происходит потому, что он пытается обновить не одну ячейку (но что?)< /p>
Между тем, присвоение с помощью df.at работает хорошо, но почему бы не df.loc?
df.at[1, '1'] = (1,2)
Подробнее здесь: https://stackoverflow.com/questions/793 ... -dataframe
Присвоение кортежа ячейке фрейма данных pandas завершается сбоем в объединенном фрейме данных ⇐ Python
Программы на Python
1736659475
Anonymous
У меня есть кадр данных с кортежами в ячейках:
import numpy as np
import pandas as pd
data = np.empty((3, 4), dtype=[('cost', np.int32), ('count', np.int32)])
data['count'] = 0
data['cost'] = [[10, 2, 20, 11],
[12, 7, 9, 20],
[ 2, 14, 16, 18]]
sup = [1, 2, 3]
df = pd.DataFrame(data=data.tolist(), columns=[f'{i+1}' for i in range(len(data[0]))])
df = df.join(pd.DataFrame(sup, columns=['Supplies']))
print(df)
Это дает следующий результат:
1 2 3 4 Supplies
0 (10, 0) (2, 0) (20, 0) (11, 0) 1
1 (12, 0) (7, 0) (9, 0) (20, 0) 2
2 (2, 0) (14, 0) (16, 0) (18, 0) 3
Далее я хочу обновить ячейку:
df.loc[1, '1'] = (1,2)
но я получаю ValueError: должны быть одинаковые ключи и значения len при настройке с помощью итерации
Та же проблема возникает со списком . Присвоение любых неитерируемых типов данных, таких как строка или целое число, работает хорошо.
Далее, если я удалю это соединение:
df = df.join(pd.DataFrame(sup, columns=['Supplies']))
Я могу без проблем назначать ячейки кортежами.
Я думаю, это происходит потому, что он пытается обновить не одну ячейку (но что?)< /p>
Между тем, присвоение с помощью df.at работает хорошо, но почему бы не df.loc?
df.at[1, '1'] = (1,2)
Подробнее здесь: [url]https://stackoverflow.com/questions/79349347/assignment-of-tuple-to-pandas-dataframe-cell-fails-on-joined-dataframe[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия