Skip to main content
 首页 » 编程设计

python之如何将重复的数据行排成一行

2025年05月04日19lori

我正在尝试使用 Python 将重复数据排列成一行。

举个例子:

“原始”数据框有重复数据。

“目标”是我想要完成的。

我该怎么做?

如果我使用 Pandas,它会是什么样子?

顺便说一下,我正在从 csv 文件中获取原始数据。

 PatientID  Model#  Ear   SerNum    FName   LName   PName   PPhone 
 
 P99999    300     Left    1234567  John    Doe Jane Doe    (999) 111-2222 
 P99999    400     Right   2345678  John    Doe Jane Doe    (999) 111-2222 
 
 
 
 PID      ModleL  SerNumL   ModelR  SerNumR FName   LName   PName  PPhone 
 P99999   300     1234567   400     2345678 John    Doe     J.Doe  (999) 111-2222 

请您参考如下方法:

首先,我们将数据分成left 和right。之后我们使用 pandas.DataFrame.merge 将我们的数据重新组合在一起并给出正确的 后缀:

df_L = df[df.Ear == 'Left'].drop('Ear',axis=1) 
df_R = df[df.Ear == 'Right'].drop('Ear', axis=1) 
 
print(df_L, '\n') 
print(df_R) 
 
  PatientID  Model#   SerNum FName LName     PName          PPhone 
0    P99999     300  1234567  John   Doe  Jane Doe  (999) 111-2222  
 
  PatientID  Model#   SerNum FName LName     PName          PPhone 
1    P99999     400  2345678  John   Doe  Jane Doe  (999) 111-2222 

现在我们可以合并回去并给出正确的后缀:

df = pd.merge(df_L, df_R.iloc[:, :3], on = 'PatientID', suffixes=['Left', 'Right']) 
 
print(df) 
  PatientID  Model#Left  SerNumLeft FName LName     PName          PPhone  \ 
0    P99999         300     1234567  John   Doe  Jane Doe  (999) 111-2222    
 
   Model#Right  SerNumRight   
0          400      2345678