gpt4 book ai didi

python - 根据部分名称从数据框中提取 3 列组

转载 作者:行者123 更新时间:2023-12-01 02:44:57 24 4
gpt4 key购买 nike

我有一个数据帧,其中包含 10 秒 (100Hz) 时间序列的每一帧中 24 个标记的 xyz 标记位置。像这样:

    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?看起来很有希望,但我需要结果是一个数据框。我尝试过使用循环和分组,但我似乎找不到一种正常工作的方法。

最佳答案

我认为您需要通过split创建Multiindex首先是列名称:

df.columns = df.columns.str.split('_', expand=True)
print (df)
LHEE LTOE RHEE
x y z x y z x 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

然后通过字典理解创建DataFrames字典:

dfs = {x:df[x] for x in df.columns.levels[0]}
print (dfs)
{'RHEE': x y
0 -352.402 297.541
1 -352.409 297.548
2 -352.402 297.533
3 -352.427 297.535
4 -352.445 297.525, 'LTOE': x y z
0 -138.267 578.015 39.859
1 -138.271 578.074 39.874
2 -138.260 578.073 39.898
3 -138.242 578.079 39.905
4 -138.244 578.072 39.915, 'LHEE': x y z
0 -347.013 526.914 27.256
1 -347.035 526.934 27.261
2 -347.041 526.933 27.265
3 -347.030 526.928 27.251
4 -347.029 526.939 27.222}

print (dfs['LHEE'])
x y z
0 -347.013 526.914 27.256
1 -347.035 526.934 27.261
2 -347.041 526.933 27.265
3 -347.030 526.928 27.251
4 -347.029 526.939 27.222

关于python - 根据部分名称从数据框中提取 3 列组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45348846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com