Skip to main content
 首页 » 编程设计

python之按数据框中的不同值划分列

2025年05月04日13yxwkf

我需要通过将 x 和 y 除以宽度和高度来规范化我的数据。

X/宽度和 Y/高度

输入数据帧示例:

ID   X1 Y1 X2 Y2 X3 Y3 X4 Y4 X5 Y5 Width Height 
1     1  2 1  2  1  2  1  2  1  2     2     10 
2     1  2 1  2  1  2  1  2  1  2     2     10 
 

输出数据帧

ID   X1n Y1n X2n Y2n X3n Y3n X4n Y4n X5n Y5n  
1    .5   .2 .5  .2  .5  .2   .5 .2  .5 .2     
2    .5   .2 .5  .2  .5  .2   .5 .2  .5 .2  
 

请您参考如下方法:

与 filter根据列的名称并运行 update :

df.update(df.filter(like='X').div(df['Width'],0)) 
df.update(df.filter(like='Y').div(df['Height'],0)) 
df = df.drop(columns=['Width','Height']).add_suffix('n').rename(columns={'IDn':'ID'}) 
df 

输出:

    ID  X1n  Y1n  X2n  Y2n  X3n  Y3n  X4n  Y4n  X5n  Y5n 
0    1  0.5  0.2  0.5  0.2  0.5  0.2  0.5  0.2  0.5  0.2 
1    2  0.5  0.2  0.5  0.2  0.5  0.2  0.5  0.2  0.5  0.2