【发布时间】:2022-01-06 01:19:53
【问题描述】:
我正在尝试合并 2 列以防止重复。从this question,我可以像这样为一列做到这一点:
df = df.groupby(['Date', 'Ticket ID', 'Score', 'many other Columns...'])['Work Order'].apply(', '.join).reset_index()
这给了我一个很好的输出:
Date Ticket ID Work Order
2018-08-30 22:52:25 1444008 119846184
2021-09-29 13:33:49 1724734 122445397, 122441551
现在,我至少还有一个专栏也想做同样的事情,同时保持工单正确。但是,为不同的列重复该过程/代码似乎会删除原始列或不会像我想要的那样聚合列。我要:
Date Ticket ID Work Order Num Work Order ID
2018-08-30 22:52:25 1444008 119846184 A6zH
2021-09-29 13:33:49 1724734 122445397, 122441551 H43a1, JU8a
我用reset_index 和merge 函数尝试了一些不同的东西,但似乎无法让它做我想做的事。这似乎应该很简单 - 我错过了什么?很有可能我也必须为其他列执行此操作,所以我想要一个可重复的解决方案。
# tried some df1 and df2 stuff - along with different locations of reset index.
df = df.groupby(['Reported Date', 'Site','Ticket ID', 'TicketUID', 'Work Order UID', \
'cols...'])['Work Order'].apply(', '.join)
df = df.groupby(['Reported Date', 'Site','Ticket ID', 'TicketUID', 'Work Order', \
'cols...'])['Work Order UID'].apply(', '.join)
# tried on='Ticket ID' here as well.
#df = pd.merge(df1, df2)
【问题讨论】:
-
好吧,我认为您可以创建一个变量
grp = df.groupby(['Date', 'Ticket ID', 'Score', 'many other Columns...']),然后每次在grp上创建一个apply(', '.join),而不是之前操作的结果。最后你可以连接结果。