我正在尝试使用 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
