У меня есть список 'abc' и dataframe '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']
.
Если в dataframe есть столбцы только с целыми значениями и/или значениями NaN и/или значениями списка, тогда вставка списка в ячейку работает отлично. Если в dataframe есть столбцы только со строковыми значениями и/или значениями NaN и/или значениями списка, тогда вставка списка в ячейку работает отлично. Но если в dataframe есть столбцы с целыми и строковыми значениями и другими столбцами, тогда появляется сообщение об ошибке, если я использую это: 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
.