首页  >  文章  >  后端开发  >  如何在 Python 中成功将列表插入 DataFrame 单元格?

如何在 Python 中成功将列表插入 DataFrame 单元格?

Patricia Arquette
Patricia Arquette原创
2024-10-29 18:50:02745浏览

How to Successfully Insert a List into a DataFrame Cell in Python?

将列表插入 DataFrame 中的单元格

在 Python pandas 中处理稀疏数据时,将列表插入特定单元格可能具有挑战性。使用 df.ix[1,'B'] = abc 等常见方法尝试此类操作通常会因密钥长度不匹配而导致错误。

替代解决方案和限制

尝试解决将列表括在附加方括号中(例如 df.ix[1,'B'] = [abc])或使用字符串表示形式(例如 df.ix[1,'B'] = ', '.join (abc)) 并不令人满意,因为它们引入了额外的元素或改变了预期的数据结构。

使用 df.at 进行列表插入

更有效的方法是使用 df.at 而不是df.ix 或 df.loc。 df.at 专门针对单个单元格,消除了可能导致上述错误的歧义。

<code class="python">import pandas as pd

# Create a dataframe with mixed data types
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

# Insert a list into cell 1B
df.at[1, 'B'] = ['m', 'n']

print(df)</code>

此操作成功将 ['m', 'n'] 插入单元格 1B,没有任何错误。

确保列 Dtype 兼容性

需要注意的是,要插入列表的列必须将其 dtype 设置为“object”。如果该列具有不同的数据类型,例如“int64”,则会发生错误。为了解决这个问题,您可以在尝试插入之前转换列的数据类型:

<code class="python">df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [1,2,3]})
df['B'] = df['B'].astype('object')

# Now, list insertion will work as expected
df.at[1, 'B'] = [1, 2, 3]</code>

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

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