Saya memiliki daftar 'abc' dan dataframe 'df':
abc = ['foo', 'bar']
df =
A B
0 12 NaN
1 23 NaN
Saya ingin memasukkan daftar ke sel 1B, jadi saya ingin hasil ini:
A B
0 12 NaN
1 23 ['foo', 'bar']
Ho bisakah saya melakukan itu?
1) Jika saya menggunakan ini:
df.ix[1,'B'] = abc
Saya mendapatkan pesan kesalahan berikut:
ValueError: Must have equal len keys and value when setting with an iterable
karena mencoba memasukkan daftar (yang memiliki dua elemen) ke dalam baris / kolom tetapi tidak ke dalam sel.
2) Jika saya menggunakan ini:
df.ix[1,'B'] = [abc]
kemudian menyisipkan daftar yang hanya memiliki satu elemen yaitu 'abc' list ( [['foo', 'bar']]
).
3) Jika saya menggunakan ini:
df.ix[1,'B'] = ', '.join(abc)
lalu menyisipkan string: ( foo, bar
) tetapi bukan daftar.
4) Jika saya menggunakan ini:
df.ix[1,'B'] = [', '.join(abc)]
lalu itu menyisipkan daftar tetapi hanya memiliki satu elemen ( ['foo, bar']
) tetapi tidak dua seperti yang saya inginkan ( ['foo', 'bar']
).
Terimakasih atas bantuannya!
EDIT
Dataframe baru saya dan daftar lama:
abc = ['foo', 'bar']
df2 =
A B C
0 12 NaN 'bla'
1 23 NaN 'bla bla'
Dataframe lain:
df3 =
A B C D
0 12 NaN 'bla' ['item1', 'item2']
1 23 NaN 'bla bla' [11, 12, 13]
Saya ingin memasukkan daftar 'abc' ke df2.loc[1,'B']
dan / atau df3.loc[1,'B']
.
Jika kerangka data memiliki kolom hanya dengan nilai integer dan / atau nilai NaN dan / atau nilai daftar, maka memasukkan daftar ke dalam sel bekerja dengan sempurna. Jika kerangka data memiliki kolom hanya dengan nilai string dan / atau nilai NaN dan / atau nilai daftar, maka memasukkan daftar ke dalam sel bekerja dengan sempurna. Tetapi jika dataframe memiliki kolom dengan nilai integer dan string dan kolom lainnya maka muncul pesan kesalahan jika saya menggunakan ini: df2.loc[1,'B'] = abc
atau df3.loc[1,'B'] = abc
.
Dataframe lain:
df4 =
A B
0 'bla' NaN
1 'bla bla' NaN
Sisipan ini bekerja dengan sempurna: df.loc[1,'B'] = abc
atau df4.loc[1,'B'] = abc
.
0.15.0
:df.loc[1,'b'] = ['foo','bar']