首页 >后端开发 >Python教程 >如何将列表插入 Python Pandas Dataframe 中的特定单元格?

如何将列表插入 Python Pandas Dataframe 中的特定单元格?

Patricia Arquette
Patricia Arquette原创
2024-10-29 13:34:29447浏览

How Can I Insert a List into a Specific Cell in a Python Pandas Dataframe?

将列表插入到 Python Pandas Dataframe 中的单元格中

将列表插入到 Pandas Dataframe 中的特定单元格中可能是一项棘手的任务。让我们根据给定的示例探讨各种方法和潜在问题:

原始问题:

具有以下结构的数据框“df”:

    A  B
0  12  NaN
1  23  NaN

和一个包含 ['foo', 'bar'] 的列表 'abc'。目标是将此列表插入到单元格 1B 中。

努力:

  1. df.ix[1,'B'] = abc: 抛出 ValueError由于键和值的长度不等。
  2. df.ix[1,'B'] = [abc]:插入包含 'abc' 列表而不是单个元素的列表。
  3. df.ix[1,'B'] = ', '.join(abc):插入字符串而不是列表。
  4. df.ix[1,'B'] = [', '. join(abc)]:插入一个包含连接字符串的单元素列表。

解决方案:

已弃用的 set_value 方法已替换为 at。使用 at 保证设置单个值:

<code class="python">df.at[1, 'B'] = ['foo', 'bar']</code>

其他注意事项:

  • 确保目标列具有 dtype=object 以适应列表插入。
  • 可以应用相同的方法将列表插入包含整数或字符串值的单元格。
  • 但是,当将列表插入包含混合数据类型(整数和字符串)的列时,可能会出现 ValueError发生。这可以通过在插入之前将列转换为 dtype=object 来解决。

更新示例:

将 'abc' 列表插入 df2.loc[ 1,'B'] 和 df3.loc[1,'B']:

<code class="python">df2 = pd.DataFrame({
    'A': [12],
    'B': [nan],
    'C': ['bla']
})

df3 = pd.DataFrame({
    'A': [12],
    'B': [nan],
    'C': ['bla bla'],
    'D': [['item1', 'item2'], [11, 12, 13]]
})

df2.loc[1, 'B'] = ['foo', 'bar']
df3.loc[1, 'B'] = ['foo', 'bar']</code>

以上是如何将列表插入 Python Pandas Dataframe 中的特定单元格?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn