最近一天左右,我一直在为这个问题苦苦挣扎。我正在尝试合并按电子邮件和商店分组的数据框中的多列。
我目前有一个数据框:
df = module.get("/test.xlsx"), format="excel"
结果:
电子邮件 | 商店 | 订单1 | Order2 | Order3 |
---|---|---|---|---|
test@email.com | 位置 1 | 3457834 | 123434 | 345678 |
test@email.com | 位置 2 | 4232234 | 123456 | 348902 |
tes2t@email.com | 位置 3 | 2346442 | 123432 |
唯一的区别是表格从 Order1
到 Order20
期望的结果是将所有订单号合并到一个带有换行符的单列中,如果订单号为空,例如最后一行的 Order3
则停止。永远不会出现 Order3 为空而订单 4-20 不为空的情况。它只是按数据源的顺序打印。
电子邮件 | 商店 | 订单 |
---|---|---|
test@email.com | 位置 1 | 3457834\n123434\n345678 |
test@email.com | 位置 2 | 4232234\n123456\n348902 |
tes2t@email.com | 位置 3 | 2346442\n123432 |
任何有关如何开始的帮助将不胜感激。
答案 0 :(得分:2)
试试这个:
df_orders = df.filter(like='Order')
df['Orders'] = df_orders.apply(lambda x: '\n'.join(x[~x.isnull()].values.astype(str)), axis=1)