Python pandas将列表插入到单元格中
我有一个列表'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。
相关分类