相关疑难解决方法(0)

Python pandas将列表插入到单元格中

我有一个列表'abc'和一个数据帧'df':

abc = ['foo', 'bar']
df =
    A  B
0  12  NaN
1  23  NaN
Run Code Online (Sandbox Code Playgroud)

我想将列表插入单元格1B,所以我想要这个结果:

    A  B
0  12  NaN
1  23  ['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?

1)如果我使用这个:

df.ix[1,'B'] = abc
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

ValueError: Must have equal len keys and value when setting with an iterable
Run Code Online (Sandbox Code Playgroud)

因为它试图将列表(有两个元素)插入行/列但不插入单元格.

2)如果我使用这个:

df.ix[1,'B'] = [abc]
Run Code Online (Sandbox Code Playgroud)

然后它插入一个只有一个元素是'abc'列表([['foo', 'bar']])的列表.

3)如果我使用这个:

df.ix[1,'B'] = ', '.join(abc)
Run Code Online (Sandbox Code Playgroud)

然后它插入一个字符串:( foo, bar)但不是列表.

4)如果我使用这个:

df.ix[1,'B'] = [', '.join(abc)]
Run Code Online (Sandbox Code Playgroud)

然后它插入一个列表,但它只有一个元素(['foo, bar'])但不是我想要的两个(['foo', 'bar']).

感谢帮助!


编辑

我的新数据框和旧列表:

abc = ['foo', …
Run Code Online (Sandbox Code Playgroud)

python list insert dataframe pandas

80
推荐指数
5
解决办法
8万
查看次数

如何将熊猫列的值设置为列表

我想将pandas列的值设置为字符串列表。但是,我这样做没有成功,因为大熊猫将列值视为可迭代值,并且得到了:ValueError: Must have equal len keys and value when setting with an iterable

这是MWE

>> df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
>> df
col1    col2
0   1   4
1   2   5
2   3   6

>> df['new_col'] = None
>> df.loc[df.col1 == 1, 'new_col'] = ['a', 'b']
ValueError: Must have equal len keys and value when setting with an iterable
Run Code Online (Sandbox Code Playgroud)

我试图将设置dtypelistusing df.new_col = df.new_col.astype(list),但这也不起作用。

我想知道什么是正确的方法。


编辑

这里提供的答案:Python的大熊猫插入列表进入细胞使用at …

python pandas

3
推荐指数
2
解决办法
3175
查看次数

标签 统计

pandas ×2

python ×2

dataframe ×1

insert ×1

list ×1