Bir 'abc' listem ve bir veri çerçevem 'df' var:
abc = ['foo', 'bar']
df =
A B
0 12 NaN
1 23 NaN
Listeyi 1B hücresine eklemek istiyorum, bu nedenle şu sonucu istiyorum:
A B
0 12 NaN
1 23 ['foo', 'bar']
Bunu nasıl yapabilirim?
1) Bunu kullanırsam:
df.ix[1,'B'] = abc
Aşağıdaki hata mesajını alıyorum:
ValueError: Must have equal len keys and value when setting with an iterable
çünkü listeyi (iki öğesi olan) bir satıra / sütuna eklemeye çalışır, ancak bir hücreye değil.
2) Bunu kullanırsam:
df.ix[1,'B'] = [abc]
daha sonra, 'abc' listesi ( [['foo', 'bar']]
) olan yalnızca bir öğesi olan bir liste ekler .
3) Bunu kullanırsam:
df.ix[1,'B'] = ', '.join(abc)
daha sonra bir dize ekler: ( foo, bar
) ama liste eklemez.
4) Bunu kullanırsam:
df.ix[1,'B'] = [', '.join(abc)]
sonra bir liste ekler, ancak yalnızca bir öğesi ( ['foo, bar']
) vardır, istediğim gibi iki öğe yoktur ( ['foo', 'bar']
).
Yardım için teşekkürler!
DÜZENLE
Yeni veri çerçevem ve eski liste:
abc = ['foo', 'bar']
df2 =
A B C
0 12 NaN 'bla'
1 23 NaN 'bla bla'
Başka bir veri çerçevesi:
df3 =
A B C D
0 12 NaN 'bla' ['item1', 'item2']
1 23 NaN 'bla bla' [11, 12, 13]
'Abc' listesini df2.loc[1,'B']
ve / veya içine eklemek istiyorum df3.loc[1,'B']
.
Veri çerçevesinin yalnızca tamsayı değerleri ve / veya NaN değerleri ve / veya liste değerleri olan sütunları varsa, bir hücreye bir liste eklemek mükemmel şekilde çalışır. Veri çerçevesinin yalnızca dize değerleri ve / veya NaN değerleri ve / veya liste değerleri olan sütunları varsa, bir hücreye bir liste eklemek mükemmel şekilde çalışır. Ancak veri çerçevesinin tam sayı ve dize değerleri ve diğer sütunları olan sütunları varsa, bunu kullanırsam hata mesajı görünür: df2.loc[1,'B'] = abc
veya df3.loc[1,'B'] = abc
.
Başka bir veri çerçevesi:
df4 =
A B
0 'bla' NaN
1 'bla bla' NaN
Bu ekler mükemmel çalışır: df.loc[1,'B'] = abc
veya df4.loc[1,'B'] = abc
.
0.15.0
:df.loc[1,'b'] = ['foo','bar']