pandas df 在多线程中追加改变变量:为 df 创建初始索引时出现问题,pd 是正确的工具吗?

pandas df appending altering variables in multithreading: problems creating the initial index for the df, and is pd the correct tool for this?

我需要:

  1. 创建一个如下所示的 df:
items y y y
item z z z
item z z z
item z z z

为方便起见,第一列被命名为 ['items'],因为在此自定义索引下创建的行将基于更改变量 item 。它将被传递到 items 列以创建新列,变量的值稍后将用作特定行的选择器。变量 y 和 z 也会不断变化,并附加到 df..

z 值可能是 NaN,比方说 y 到 y50 左右的范围,假设值仅在 y50 到 y5000 范围内。

因此 - 请让我知道这是否是完成这项工作的合适工具!我读到有时如果数据结构不均匀,可能会导致问题 - 为什么会这样? 这严格来说是我试图完成的一种“三角”数据结构,我选择 pd 是因为以后可以轻松分析所获得的数据(并且因为我喜欢它)。但最重要的是:如果这在 pd 中可行,这个数据结构将满足我稍后对数据执行的所有操作。

问题:

我觉得这真的很容易,但我在这里需要帮助,因为如果一开始没有正确设置,整个项目可能会失败。

所以,自然地:

基本上,第一个主线程会获取数据,根据特定条件检查数据,然后才传递给数据帧无限循环,它会不断扫描数据以发现数据中的任何异常情况。 想把这个df做成这个项目的中心点,和IDK好不好请赐教

编辑:取得了一些进展

到目前为止我做了什么:

 df_buffer = pd.DataFrame({'items':[f'{item}']})

df_buffer = df_buffer.insert( loc=1, column=[f'{y}'], value=int)

类型错误:无法散列的类型:'list'

(...)column=f'{y}'(...) 输出是 None

感谢帮助。

Dataframes 不适合多线程操作。为此,我建议使用 Python 的内置数据结构。您可能可以使用字典的字典并在此字典上执行操作/更新。然后,出于分析目的,使用字典创建数据框。

df_dict = {
"item_1": {"x": x_value, "y": y_value, "z": z_value},
"item_2": {"x": x_value, "y": y_value, "z": z_value}
}

这篇 解释了如何使用字典中的字典制作数据框。