我只是从Pandas开始,我正在尝试将要保存的数据文件制作成可以导出和读取的文件。我的CSV格式如下:
time | parameter | value
------------------------------------
1 | a | 21
2 | a | 21
3 | a | 21
1 | b | 19
2 | b | 19
3 | b | 19
1 | c | 17
2 | c | 17
3 | c | 17
我想将其转换为以下形式:
time | a | b | c
------------------------------------
1 | 21 | 19 | 17
2 | 21 | 19 | 17
3 | 21 | 19 | 17
1 | 21 | 19 | 17
2 | 21 | 19 | 17
3 | 21 | 19 | 17
1 | 21 | 19 | 17
2 | 21 | 19 | 17
3 | 21 | 19 | 17
当然,我的数据具有不同的值,但是上面的示例应该足够了。它是天气数据,例如温度和风速,每行都有测量的时间戳,参数名称和值。
我想将其转换为每个时间戳的3列(或者更多,如果有更多参数的话)的一行,其中列名是参数名。
我知道我必须按时间列对数据进行分组,所以我已经完成了
df.groupby('time')
但是,我无法弄清楚如何执行apply方法,该方法将为我提供所需的结果。任何提示表示赞赏!
答案 0 :(得分:1)
您可以尝试使用pivot table:
pd.pivot_table(df, index='time', columns='parameter', values='value')
parameter a b c
time
1 21 19 17
2 21 19 17
3 21 19 17