”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何将列表插入 Python Pandas Dataframe 中的特定单元格?

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

发布于2024-11-18
浏览:162

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 中。

Efforts:

  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 保证设置单个值:

df.at[1, 'B'] = ['foo', 'bar']

其他注意事项:

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

更新示例:

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

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']
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3