gpt4 book ai didi

python Pandas : how to fast process the value in columns

转载 作者:行者123 更新时间:2023-11-28 20:33:59 25 4
gpt4 key购买 nike

您好,有一个数据框,如以下数据框 df1。数据类型为字符串。

    eye         nose       mouse       ear
34_35_a 45_66_b 45_64_a 78_87_a
35_38_a 75_76_b 95_37_a 38_79_a
64_43_a 85_66_b 65_45_a 87_45_a

我想获取如下数据框的数据框。眼睛数据分为eye_x,eye_y,其他列相同,数据类型为float。

 eye_x   eye_y    nose_x   nose_y     mouse_x  mouse_y     ear_x   ear_y        
34 35 45 66 45 64 78 87
35 38 75 76 95 37 38 79
64 43 85 66 65 45 87 45

到目前为止,我知道如何使用以下代码获取 (x, y) 值:

 eye           nose       mouse       ear
(34, 35) (45,66) (45,64) (78,87)
(35, 38) (75,76) (95,37) (38,79)
(64, 43) (85,66) (65,45) (87,45)

def process_xy(val_str):
s = val_str.split('_')
x = float(s[0])
y = float(s[1])
label = int(s[2])
return np.array([x, y])

keypoint_cols = list(df.columns)
d = None
for col in keypoint_cols:
df[col+'_xy'] = df[col].apply(process_xy)

df2 = df.drop(keypoint_cols, axis=1)

最佳答案

你可以试试stack荷兰国际集团和unstack再次。

v = df.stack().str.split('_', expand=True).iloc[:, :-1]
v.columns = ['x', 'y']

v = v.unstack().swaplevel(0, 1, axis=1)
v.columns = v.columns.map('_'.join)

v.sort_index(axis=1)

ear_x ear_y eye_x eye_y mouse_x mouse_y nose_x nose_y
0 78 87 34 35 45 64 45 66
1 38 79 35 38 95 37 75 76
2 87 45 64 43 65 45 85 66

关于 python Pandas : how to fast process the value in columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49525337/

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