python - 在 Pandas Dataframe 中聚合、转置和提取值

标签 python pandas

Input DF:

ID Time Value 
0   1    5
0   2    7
0   3    8
1   1    1
1   2    4
1   3    6

Output DF:
   1  2  3
0  5  7  8
1  1  4  6 

目标:我目前有一些类似于输入 DF 的东西,并希望将其转换为输出 DF。

  • 输出 DF 的第 1 行等于唯一时间数据点。
  • 输出 DF 的第 1 列等于唯一 ID。剩余的
  • 中心点等于给定 id/time 的 Value 元素

我最接近的是做这样的事情:

group_by = input_df.groupby('ID').agg({'Value':np.mean})

或者:

group_by = input_df.groupby('time').agg({'Value':np.mean})

这将使我按 ID 或时间汇总均值,但我无法弄清楚如何同时执行这两项操作,只能提取值。

最佳答案

你可以使用数据透视表:

df.pivot(index='ID', columns='Time', values='Value')
Out: 
Time  1  2  3
ID           
0     5  7  8
1     1  4  6

这假设时间/ID 对是唯一的。如果没有,您可以将其替换为 pivot_table 并添加合适的聚合函数:

df.pivot_table(index='ID', columns='Time', values='Value', aggfunc='first')
Out: 
Time  1  2  3
ID           
0     5  7  8
1     1  4  6

您的方法也适用于 unstack:

df.groupby(['ID', 'Time'])['Value'].agg('mean').unstack()
Out: 
Time  1  2  3
ID           
0     5  7  8
1     1  4  6

关于python - 在 Pandas Dataframe 中聚合、转置和提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40981922/

相关文章:

python - 是否有一个相当于 PyXll `@xl_func(macro=True)` 和 xlwings 的装饰器?

python - 关闭作为对象 {str} 打开的文件

python - 烧杯 session 中的 last_accessed 时间始终为 None,但 _accessed_time 正在更改

python - Pandas : Merge 2 dataframe based on common column which contains dictionary

python - 如何对数据进行分组并绘制折线图

python - 如何在 Sympy 中快速反转幂函数

javascript - 使用 Selenium 和 python 抓取 javascript 生成的内容时出现问题

python - Pandas :在给定条件下填充nans

python - Pandas 使用 dfA 列合并 == dfB 索引

python-3.x - NumPy 整数数组到 timedelta