У меня есть список 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']
).
Спасибо за помощь!
РЕДАКТИРОВАТЬ
Мой новый фреймворк и старый список:
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']