微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重新排列 csv rssi 数据以按时间和位置 Python 分组

如何解决重新排列 csv rssi 数据以按时间和位置 Python 分组

我有一个 csv 文件,它是一段时间内不同接入点的一系列 RSSI 数据记录,格式如下:

Time     | Signal | Location      
07:37:47 | -98.0  | bedroom             
07:37:47 | -96.0  | bedroom                 
07:37:47 | -91.0  | kitchen             
07:37:47 | -95.0  | kitchen             
07:37:47 | -68.0  | stairs                  
07:37:48 | -60.0  | bedroom  
07:37:48 | -60.0  | stairs              
07:37:48 | -62.0  | stairs   
07:37:48 | -60.0  | kitchen  
07:37:48 | -70.0  | kitchen

我想重新排列它以输出每个不同位置每秒的平均信号强度,如下所示:

Time     | bedroom | kitchen  | stairs  
07:37:47 | -97.0   |    -93.0 | -68.0                           
07:37:48 | -60.0   |    -65.0 | -61.0

即我想将接入点的位置移动到每个新列的标题,并在行中获得每秒的平均信号。

有没有一种干净的方法可以使用熊猫来做到这一点?我一直在摆弄 .groupby() 和 .resample() 但想不出一个简单的方法。任何帮助将不胜感激。

谢谢。

解决方法

使用pd.pivot_table获取数据透视表,然后使用reset_index创建Time常规列:

import pandas as pd
import numpy as np

pd.pivot_table(data=df,values="Signal",index="Time",columns="Location",aggfunc=np.mean)\
    .reset_index()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。