DataFramedocumentation(从pandas 2.0.0开始)的参数部分开始:

data : ndarray (structured or homogeneous), Iterable, dict, or DataFrame

DICT可以包含序列、数组、常量、数据类或类似列表的对象.如果数据是词典,则列顺序遵循插入顺序.如果词典包含定义了索引的系列,则按其索引对齐.如果数据是Series或DataFrame本身,也会发生这种对齐.在Series/DataFrame输入上进行对齐.

如果数据是字典列表,则列顺序遵循插入顺序.

该描述指向有效的输入类型(即ndarray, Iterable, dict, or DataFrame)but does not completely describe how the constructor will turn the 102 into a 103.它看起来有点像一个黑匣子.根据文档,我应该能够预测,比如说,传递一个包含单个Series而不包含其他参数的list将得到类似于Series.to_frame().T的结果(尽管数据类型可能不同;请参见this answerthis one)?

这个问题的目的是征求答案.这必然是一个广泛的问题,但鉴于构造函数是在代码中实现的,应该有有限数量的情况.我对这个问题很感兴趣,并愿意稍微挖掘一下源代码以找到答案;然而,我认为其他有更多经验的人可能会在我之前在这里分享一些见解.

这是一个关于广泛规则的单一问题,我相信它的答案应该放在一个地方.然而,由于它很广泛,我将提供一些具体的子问题来开始:

  • 对于iterable,哪些容器和元素组合有效?在不需要try 的情况下,我应该能够预测如果我通过了DataFrames分的list分或Series分的Series分会发生什么吗?当Series输入"按其索引对齐"时,使用哪个轴?治疗完全取决于它的要素是什么吗?

  • 通过data传递的容器和元素类型如何影响DataFrame的组合方式?仅仅基于data的知识,我应该能够预测数据将如何沿着结果DataFrame的轴对齐吗?我不知道答案是否显而易见,但在任何一种情况下,我都没有看到它的记录.

  • 如果我把DataFrame想象成"Series个对象的类似字典的容器"(正如文档所建议的那样),那么控制如何(大致地)将data解释为键和值的直观规则是什么?

我对改进这个问题的建议持开放态度,但我确实认为这是一个需要提出的问题,我在这个网站上没有找到类似的问题.

推荐答案

除了文档,有时阅读测试也很有用,特别是在您的情况下是test_constructors.py个测试.构建DataFrame的方法有很多种.

太长了,无法描述所有的方式,让我们看看test_constructors.py

Python相关问答推荐

将数组操作转化为纯numpy方法

在Python中,如何初始化集合列表脚本的输出

在Python中使用readline函数时如何向下行

回归回溯-2D数组中的单词搜索

Python中两个矩阵的自定义Hadamard风格产物

在Python中管理多个OpenGVBO和VAO实例

是什么导致对Python脚本的jQuery Ajax调用引发500错误?

如何终止带有队列的Python进程?+ 队列大小的错误?

将HLS纳入媒体包

Polars比较了两个预设-有没有方法在第一次不匹配时立即失败

try 与gemini-pro进行多轮聊天时出错

Gekko:Spring-Mass系统的参数识别

更改键盘按钮进入'

如何让这个星型模式在Python中只使用一个for循环?

如何在图中标记平均点?

多处理队列在与Forking http.server一起使用时随机跳过项目

如何在Python中使用另一个数据框更改列值(列表)

在Python中计算连续天数

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

为什么调用函数的值和次数不同,递归在代码中是如何工作的?