连接按identity分组的每列的行

问题描述 投票:0回答:1

欢迎帮助。

我想将数据帧的每个 ID 的多行合并到一个单元格中,以下是输入格式:

enter image description here

我分别在 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)

预期输出:

enter image description here

python pandas dictionary group-by
1个回答
0
投票

您可以使用

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
© www.soinside.com 2019 - 2024. All rights reserved.