gpt4 book ai didi

Python:多维 Pandas 数据框

转载 作者:行者123 更新时间:2023-12-04 04:10:36 28 4
gpt4 key购买 nike

这是我的第一个问题。

我有很多组数据。它们中的每一个都应该在 DataFrame 中呈现。我试图通过将 DataFrame 作为多维元组的一项来实现这一点,例如:

data[0][1].Glucose.val
data[0][1].Glucose.time

我已经像这样预定义了元组:

data = tuple([data_type for _ in range(3)] for _ in range(8))

解决这个问题很好,但是如果我尝试用新值填充 df,元组中的所有元素都会被覆盖:

for condition in range(8):
for index in range(3):
loop_it = condition + row_mult * index
exp_setting = expIDs[loop_it]

tempval = pd.read_csv(f"raw_data/{exp_setting}_Glucose.csv", delimiter="\t")
rundata[condition][index].DOT.val = tempval.val.values
rundata[condition][index].DOT.time = tempval.t

我到底做错了什么?

谢谢

最佳答案

元组是不可变的,因此您不能在不覆盖整个元组的情况下替换单个项目。您可以改用 DataFrame 列表。

如果您的 DataFrame 都具有相同的形状,并且所有值都是数字,您也可以只对所有数据使用一个多维 NumPy 数组,例如:

import numpy as np

data = np.array([[[1, 2], [3, 4]],
[[5, 6], [7, 8]]])

# replace the first item in the second row of the first frame with 9
data[0, 1, 0] = 9

print(data)
[[[1 2]
[9 4]]

[[5 6]
[7 8]]]

顺便说一下,pandas 在早期版本中确实有针对 3 维和 4 维 DataFrames 的特殊数据结构,但我猜他们被发现是不必要的。也许您可以将数据堆叠到一个具有两个维度的 DataFrame 中。为此,您可能需要研究 pandas 的 MultiIndex 功能。

关于Python:多维 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61807739/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com