欢迎帮助。
我想将数据帧的每个 ID 的多行合并到一个单元格中,以下是输入格式:
我分别在 pandas 中有以下列和数据框列表
dict1 = {'ID': ['6610', '6610', '6610', '6620', '6620', '7540', '7540'],
'NEW_ID': ['6615',
'6615',
'6615',
' ',
' ',
nan,
nan],
'OLD_PRICE': [17.22, 17.9, 17.22, 27.49, 20.42, 30.73, 29.55],
'NEW_PRICE': [17.22, 17.22, 27.49, 18.99, 27.49, 29.55, 27.49],
'LABEL': [' NaN1', ' NaN2', ' NaN4', nan, ' Na', 'A', 'B']}
df = pd.DataFrame(dict1)
预期输出:
您可以使用
ID
在 pd.Series.duplicated
列中查找重复项,并用空白值填充重复项 ''
:
mask = df["ID"].duplicated(keep="first")
df.loc[mask, "ID"] = ""
df["NEW_ID"] = df["NEW_ID"].fillna("")
print(df)
打印:
ID NEW_ID OLD_PRICE NEW_PRICE LABEL
0 6610 6615 17.22 17.22 NaN1
1 6615 17.90 17.22 NaN2
2 6615 17.22 27.49 NaN4
3 6620 27.49 18.99 NaN
4 20.42 27.49 Na
5 7540 30.73 29.55 A
6 29.55 27.49 B