python - 在 Pandas 中使用 .loc 将集合插入单元格时的行为不一致
问题描述
这是一个非常简单的例子
import pandas
df = pandas.DataFrame()
value_to_be_set = {'1'}
df.loc[0, 'col1'] = value_to_be_set
df['col2'] = None
df.loc[0, 'col2'] = value_to_be_set
print(df.head())
输出
col1 col2
0 1 {1}
为什么两列的数据类型不同?
Python 3.7.3
熊猫版本:0.23.4
解决方案
在第一个任务中,您从一个集合中创建一个 num_column,这与可迭代的不同。您要求 1 个单个元素并提供一个大小为 1 的迭代,因此您将集合的内容影响到单个单元格。您可以尝试使用一组 2 个值来查看它会引发错误。
在第二次分配中,您更新现有列中的单元格。Pandas 没有理由在这里打开任何东西,它会影响到单元格的集合。
老实说,这解释了会发生什么,但不能作为不同行为背后的理由的理由......
推荐阅读
- javascript - 如何使用 Jquery 将搜索值附加到 url?
- mongodb - MongoDB Mongoose Group by 和 count
- unity3d - Unity Editor Scripting:类似于 BoxCollider 的场景控件
- c# - 如何在没有 Windows 运行时组件的 C# UWP 应用程序中导入 C++ Legacy DLL
- python - 是否有 python 库可以根据投资组合权重和股票价格计算时间加权回报?
- java - 删除对“Log4j 2”的直接依赖
- amazon-web-services - 有条件地更新集合属性并跟踪其中的元素数量 DynamoDB Node.js
- jquery - 如何选择数据表 1.9 中当前页面中显示的行?
- windows-10 - 更新到 Windows 10 1903 后指纹传感器不工作。(Dell G3 3579)
- java - google cloud vision api OCR 边界框