【问题标题】:How to calculated pivot table using python如何使用python计算数据透视表
【发布时间】:2020-02-08 10:42:16
【问题描述】:

我在下面有一个示例表:

Temperature Voltage     Data
25              3.3     2.15
25              3.3     2.21
25              3.3     2.23
25              3.3     2.26
25              3.3     2.19
25             3.45      2.4
25             3.45     2.37
25             3.45     2.42
25             3.45     2.34
25             3.45     2.35
105             3.3      3.2
105             3.3     3.22
105             3.3     3.23
105             3.3     3.24
105             3.3     3.26
105            3.45     3.33
105            3.45     3.32
105            3.45     3.34
105            3.45      3.3
105            3.45     3.36

我想计算每个温度和电压情况的平均数据。我可以通过制作数据透视表在 excel 中执行此操作,但我想学习如何在 python 脚本中执行此操作,以便我可以自动化此数据处理部分。

谢谢你, 维克多

附:抱歉奇怪的格式表。我不确定如何在此处正确复制和粘贴表格。

【问题讨论】:

  • 我不太明白,你要数据列的平均值吗?还是每次不同情况下数据列的平均值(例如 T=25 和 V=3.3 的数据平均值)?
  • 研究使用 Pandas 包,它具有方便的数据透视表和数据透视表功能
  • 如果您是按温度和电压进行平均,请参阅:stackoverflow.com/questions/44165629/…

标签: python pivot


【解决方案1】:

如果你熟悉的话,我想你需要的函数是.groupby()

df.groupby(['Temperature','Voltage'])['Data'].mean()

这将为每个唯一的TemperatureVoltage 组合生成值Data 的平均值。这是一个例子:

import pandas as pd
data = {
    'Temperature': [25,25,25,25,25,25,25,25,25,25,105,105,105,105,105,105,105,105,105,105],
    'Voltage': [3.3,3.3,3.3,3.3,3.3,3.45,3.45,3.45,3.45,3.45,3.3,3.3,3.3,3.3,3.3,3.45,3.45,3.45,3.45,3.45],
    'Data': [2.15,2.21,2.23,2.26,2.19,2.4,2.37,2.42,2.34,2.35,3.2,3.22,3.23,3.24,3.26,3.33,3.32,3.34,3.3,3.36]
}
df = pd.DataFrame(data)
print(df.groupby(['Temperature','Voltage'])['Data'].mean())

输出:

Temperature  Voltage
25           3.30       2.208
             3.45       2.376
105          3.30       3.230
             3.45       3.330

【讨论】:

  • 谢谢!我想这就是我一直在寻找的。我有一个问题,如果我想遍历每个电压和温度的每个数据点,并做一些事情,比如取 2 个点之间的绝对值差异,看看它是否大于某个数字,如果是,那么将其算作一个跳跃。我该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
  • 2018-06-24
  • 2016-06-14
相关资源
最近更新 更多