使用Pandas进行多次时间变化试验

时间:2018-03-08 23:06:35

标签: python pandas

我刚刚进入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值)?

1 个答案:

答案 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.