我想将 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
我试图将 dtype
设置为 list
使用 df.new_col = df.new_col.astype(list)
但这也不起作用。
我想知道这里正确的方法是什么。
编辑
此处提供的答案: Python pandas insert list into a cell using at
对我也不起作用。
原文由 Unni 发布,翻译遵循 CC BY-SA 4.0 许可协议
不容易,一种可能的解决方案是创建助手
Series
:另一个解决方案,如果也需要将缺失值设置为空列表,则使用列表理解:
但是随后您失去了使用 NumPy 数组保存在连续内存块中的矢量化功能。