我一直在做一个实验,在这个实验中,多个被调查者使用可穿戴技术收听多段音乐来跟踪多段信息,两个例子是BPM
(心率)和{
其目的是测量每一首音乐(以用户反馈为特征)对人类情感的影响。在
目前,所有数据都存储在多个目录中的.txt
文件(文本文件中的每一行都有一个条目),这些目录具有以下结构:
/user_1
/BPM
song_1.txt
76
78
song_2.txt
76
78
85
/T
song_1.txt
35.7
35.3
35.3
35.3
35.3
song_2.txt
32.2
32.4
37.8
32.4
37.8
由于歌曲长度等变量和可穿戴设备传输的时间段不一致,每个单独的.txt
文件可能具有不同的长度。例如,即使是同一首歌,BPM
和T
的时间序列也可以是不同的长度。在
我已经编写了Python代码来遍历和读取所有文件中的值。在
目前,我正在考虑创建一个如下所示的数据帧:
^{pr2}$但我担心在每个单元格中存储一个数组可能会使数据标准化等任务变得困难——我现在想知道是否有更好的方法来利用multi-index将其存储在Pandas中?在
我认为处理数据帧的dicts会更容易。在单元格中创建列表需要大量额外的工作,这在您的情况下是可以避免的。在
我想对您的案例最有帮助的数据结构是为每个歌曲id设置一个数据帧。即使每个用户的数据略有不同,您仍然可以通过使用一些NaN来解决问题。 你的数据是一个时间序列,所以你应该以时间为轴。很可能你不想知道确切的时间,而是歌曲开始后的秒数。在
示例结构:
或者,您可以使用多列索引(在级别0上使用度量,在级别1使用用户标识)
示例:
^{pr2}$如果您有许多特定于度量的转换,那么第二种方法更好
然后使用
dict
保存所有数据帧:然后您可以轻松地迭代以执行分析:
这个workfow通常比使用更容易出错pd面板在
相关问题 更多 >
编程相关推荐