У мене є список 'abc' і фрейм даних 'df':
abc = ['foo', 'bar']
df =
A B
0 12 NaN
1 23 NaN
Я хочу вставити список у комірку 1B, тому хочу такий результат:
A B
0 12 NaN
1 23 ['foo', 'bar']
Хо я можу це зробити?
1) Якщо я використовую це:
df.ix[1,'B'] = abc
Я отримую таке повідомлення про помилку:
ValueError: Must have equal len keys and value when setting with an iterable
оскільки він намагається вставити список (який має два елементи) у рядок / стовпець, але не в клітинку.
2) Якщо я використовую це:
df.ix[1,'B'] = [abc]
потім він вставляє список, який має лише один елемент, який є списком 'abc' ( [['foo', 'bar']]
).
3) Якщо я використовую це:
df.ix[1,'B'] = ', '.join(abc)
тоді він вставляє рядок: ( foo, bar
), але не список.
4) Якщо я використовую це:
df.ix[1,'B'] = [', '.join(abc)]
потім він вставляє список, але він має лише один елемент ( ['foo, bar']
), але не два, як я хочу ( ['foo', 'bar']
).
Дякуємо за допомогу!
EDIT
Мій новий фрейм даних і старий список:
abc = ['foo', 'bar']
df2 =
A B C
0 12 NaN 'bla'
1 23 NaN 'bla bla'
Інший фрейм даних:
df3 =
A B C D
0 12 NaN 'bla' ['item1', 'item2']
1 23 NaN 'bla bla' [11, 12, 13]
Я хочу вставити список "abc" у df2.loc[1,'B']
та / або df3.loc[1,'B']
.
Якщо фрейм даних має стовпці лише із цілими значеннями та / або значеннями NaN та / або значеннями списку, тоді вставлення списку в комірку працює ідеально. Якщо фрейм даних має стовпці лише зі значеннями рядків та / або значеннями NaN та / або значеннями списку, тоді вставлення списку в комірку працює ідеально. Але якщо в фреймі даних є стовпці із цілими і рядковими значеннями та іншими стовпцями, тоді з'являється повідомлення про помилку, якщо я використовую це: df2.loc[1,'B'] = abc
або df3.loc[1,'B'] = abc
.
Інший фрейм даних:
df4 =
A B
0 'bla' NaN
1 'bla bla' NaN
Ці вставки чудово працюють: df.loc[1,'B'] = abc
або df4.loc[1,'B'] = abc
.
0.15.0
:df.loc[1,'b'] = ['foo','bar']