【问题标题】:Python Column Generation with AVERAGEIF for LARGER DATASET使用 AVERAGEIF 生成更大数据集的 Python 列
【发布时间】:2017-11-16 21:58:16
【问题描述】:

在我的最后一个问题中,我已经倾注了 StackOverflow 与 groupby 的一部分,但 groupby 似乎无法完成我正在寻找的东西。我有具有唯一字母和时间组合的数据表,我试图将这些值的“平均值”放入第二个表中,但不是所有的值。

Letter  Time   Value          Time      A2       B3
A1      1:00    7.97          1:00     3.16     4.32  
A1      2:00    3.56          2:00     5.06     6.76
A2      1:00    3.16          
A2      2:00    9.09           
A2      2:00    0.64           
A2      2:00    5.44           
A3      1:00    1.53
B1      2:00    4.55
B1      3:00    7.36
B2      1:00    3.81
B2      2:00    7.30
B3      1:00    4.34
B3      1:00    4.30
B3      2:00    4.61
B3      2:00    8.91

我不知道如何编写只能智能计算平均值的东西,我正在寻找基于两列分析的东西。我拥有从 CSV 中提取这些数据、生成唯一值等的所有代码,但它似乎并不相关。感谢您的任何建议,我只是无法通过这一步。

【问题讨论】:

  • 如果您的问题得到解决,请接受答案。单击我的答案旁边的灰色复选标记将其切换为绿色。谢谢。

标签: python pandas group-by average


【解决方案1】:

使用isin 选择所需的行,然后调用groupby + mean。进行最终的 unstack 调用以重塑您的输出。

df[df.Letter.isin(['A2', 'B3'])]\
     .groupby(['Letter', 'Time']).Value.mean().unstack().T

Letter        A2    B3
Time                  
1:00    3.160000  4.32
2:00    5.056667  6.76

【讨论】:

  • ColdSpeed,你的速度非常快!这为我节省了很多时间,而且我学到了一些东西,非常感谢您的帮助 -
猜你喜欢
  • 2018-04-30
  • 2018-04-17
  • 2023-04-05
  • 2019-07-28
  • 1970-01-01
  • 2011-05-02
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多