【发布时间】:2018-01-03 01:38:42
【问题描述】:
我有一个数据帧,其中包含 xyz 中的标记位置,用于 24 个标记,在 10 秒 (100Hz) 时间序列的每一帧中。像这样:
LHEE_x LHEE_y LHEE_z LTOE_x LTOE_y LTOE_z RHEE_x RHEE_y
0 -347.013 526.914 27.256 -138.267 578.015 39.859 -352.402 297.541
1 -347.035 526.934 27.261 -138.271 578.074 39.874 -352.409 297.548
2 -347.041 526.933 27.265 -138.260 578.073 39.898 -352.402 297.533
3 -347.030 526.928 27.251 -138.242 578.079 39.905 -352.427 297.535
4 -347.029 526.939 27.222 -138.244 578.072 39.915 -352.445 297.525
.....
我想一次将包含一个标记(即 LHEE_x、LHEE_y 和 LHEE_z)的位置的列提取到新的数据帧,并最好为新数据帧提供标记的名称(即 LHEE)。
我知道我可以通过
“手动”执行此操作LHEE=pos_xyz.iloc[:,0:3]
or
LHEE=pos_xyz['LHEE_x','LHEE_y','LHEE_z']
但是由于我有很多标记,这会很麻烦..
我还想创建一个函数来执行此操作,以便我可以在包含来自不同标记的标记位置的数据帧上使用它。
最有效的方法是什么? 这个问题 How to select DataFrame columns based on partial matching? 看起来很有希望,但我需要结果是一个数据框。 我尝试过使用循环和分组,但我似乎无法找到一种正常工作的方法。
【问题讨论】:
-
为读者提供一个完全可重复的示例将最大限度地提高您获得答案的机会。例如。
import pandas并提供允许我们直接使用数据帧 (df) 的代码,而不是强制我们从您的 df 的复制粘贴字符串版本开始。 -
对不起,我不知道怎么做你的建议,第一次发布问题。我很乐意提供 df :)
-
没问题。下次记住这一点。顺便说一句,jezrael 的答案很可能就是你想要的。请could you remove your signature ? Your "Cheers, Elise"。