我刚刚进入Pandas,并希望找到一种保存与多次试验相对应的时变数据的好方法。
一个具体的例子可能是:
Trial 1: Salinity = 0.1 (unchanging), pH (at time 1, 2, ...)
Trial 2: Salinity = 0.1 (unchanging), pH (at time 1, 2, ...)
Trial 3: Salinity = 0.2 (unchanging), pH (at time 1, 2, ...)
Trial 4: Salinity = 0.2 (unchanging), pH (at time 1, 2, ...)
您会注意到实验可以使用相同的初始参数(盐度)重复多次,但具有不同的时变变量(pH)。
DataFrame是二维的,因此我必须为每个试验创建一个DataFrame。这是解决问题的最佳方式,我将如何将它们结合起来(例如:获得具有相同初始设置的试验的平均pH值)?
答案 0 :(得分:1)
您可以在一个pd.DataFrame
中汇总试验中的数据。以下是一个例子。
df = pd.DataFrame({'Trial': [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
'Date': [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4],
'Salinity': [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
'pH': [2, 4, 1, 4, 6, 8, 3, 2, 9, 3, 1, 4, 6, 11, 4, 6]})
df = df.set_index(['Trial', 'Date', 'Salinity'])
# pH
# Trial Date Salinity
# 1 1 0.1 2
# 2 0.1 4
# 3 0.1 1
# 4 0.1 4
# 2 1 0.1 6
# 2 0.1 8
# 3 0.1 3
# 4 0.1 2
# 3 1 0.2 9
# 2 0.2 3
# 3 0.2 1
# 4 0.2 4
# 4 1 0.2 6
# 2 0.2 11
# 3 0.2 4
# 4 0.2 6
<强>解释强>
Trial
,并带有整数标识符。['Trial', 'Date', 'Salinity']
设置索引为pandas
提供了用于分组,索引和切片的自然索引。df.loc[(1, 2, 0.1)]
将返回从数据框派生的pd.Series
,表示pH = 4.