Python Pandas Liste in eine Zelle einfügen

Ich habe eine Liste 'abc' und einen Datenrahmen 'df':

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

Ich möchte die Liste in Zelle 1B einfügen, daher möchte ich das folgende Ergebnis:

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

Ho kann ich das machen?

1) Wenn ich das benutze:

df.ix[1,'B'] = abc

Ich erhalte die folgende Fehlermeldung:

ValueError: Must have equal len keys and value when setting with an iterable

, weil versucht wird, die Liste (die zwei Elemente enthält) in eine Zeile / Spalte einzufügen, jedoch nicht in eine Zelle.

2) Wenn ich das benutze:

df.ix[1,'B'] = [abc]

dann fügt es eine Liste ein, die nur ein Element enthält, nämlich die 'abc'-Liste [['foo', 'bar']]).

3) Wenn ich das benutze:

df.ix[1,'B'] = ', '.join(abc)

then es fügt einen String ein: foo, bar) aber keine Liste.

4) Wenn ich das benutze:

df.ix[1,'B'] = [', '.join(abc)]

then es fügt eine Liste ein, aber es hat nur ein Element ['foo, bar']) aber nicht zwei wie ich will ['foo', 'bar']).

Danke für die Hilfe

BEARBEITE

Mein neuer Datenrahmen und die alte Liste:

abc = ['foo', 'bar']
df2 =
    A    B         C
0  12  NaN      'bla'
1  23  NaN  'bla bla'

Ein anderer Datenrahmen:

df3 =
    A    B         C                    D
0  12  NaN      'bla'  ['item1', 'item2']
1  23  NaN  'bla bla'        [11, 12, 13]

Ich möchte die 'abc'-Liste in @ einfügdf2.loc[1,'B'] und / oderdf3.loc[1,'B'].

Wenn der Datenrahmen nur Spalten mit ganzzahligen Werten und / oder NaN-Werten und / oder Listenwerten enthält, funktioniert das Einfügen einer Liste in eine Zelle einwandfrei. Wenn der Datenrahmen nur Spalten mit Zeichenfolgenwerten und / oder NaN-Werten und / oder Listenwerten enthält, funktioniert das Einfügen einer Liste in eine Zelle einwandfrei. Wenn der Datenrahmen jedoch Spalten mit Ganzzahl- und Zeichenfolgewerten sowie andere Spalten enthält, wird die Fehlermeldung angezeigt, wenn ich Folgendes verwende:df2.loc[1,'B'] = abc oderdf3.loc[1,'B'] = abc.

Ein anderer Datenrahmen:

df4 =
          A     B
0      'bla'  NaN
1  'bla bla'  NaN

Diese Beilagen funktionieren einwandfrei:df.loc[1,'B'] = abc oderdf4.loc[1,'B'] = abc.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage