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?
我需要:
- 创建一个如下所示的 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 中可行,这个数据结构将满足我稍后对数据执行的所有操作。
问题:
- 如何确保项目变量的第 500 个值恰好附加在名为 'items' 的初始索引列下,使用“索引”值创建第 500 行 项目?它还必须用数值 0 或 NaN 填充,直到它具有值的点,比如在以连续更改 y 命名的第 501 列中?将 y 列视为时间(我知道,通常人们将其映射到 y 轴上)
我觉得这真的很容易,但我在这里需要帮助,因为如果一开始没有正确设置,整个项目可能会失败。
所以,自然地:
- 如何为此任务正确创建它以便无缝地进行附加工作?
基本上,第一个主线程会获取数据,根据特定条件检查数据,然后才传递给数据帧无限循环,它会不断扫描数据以发现数据中的任何异常情况。
想把这个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}
}
这篇 解释了如何使用字典中的字典制作数据框。
我需要:
- 创建一个如下所示的 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 中可行,这个数据结构将满足我稍后对数据执行的所有操作。
问题:
- 如何确保项目变量的第 500 个值恰好附加在名为 'items' 的初始索引列下,使用“索引”值创建第 500 行 项目?它还必须用数值 0 或 NaN 填充,直到它具有值的点,比如在以连续更改 y 命名的第 501 列中?将 y 列视为时间(我知道,通常人们将其映射到 y 轴上)
我觉得这真的很容易,但我在这里需要帮助,因为如果一开始没有正确设置,整个项目可能会失败。
所以,自然地:
- 如何为此任务正确创建它以便无缝地进行附加工作?
基本上,第一个主线程会获取数据,根据特定条件检查数据,然后才传递给数据帧无限循环,它会不断扫描数据以发现数据中的任何异常情况。 想把这个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}
}
这篇