【发布时间】:2015-02-10 18:20:04
【问题描述】:
关于 Pandas DataFrame 'test_df':
id_customer id_order product_name
3 78 product1
3 79 product2
3 80 product3
7 100 product4
9 109 product5
在 'id_customer' 上分组后如何获得:
id_customer order_1 order_2 product_name_1 product_name_2
3 78 79 product1 product2
7 100 product4
9 109 product5
目标是检索 2 和 groupby 之后的每个 'id_customer' 匹配的行数之间的最小值,然后,如果可能,填写上述所有字段。
我开始了
def order_to_col(my_dataframe_df,my_list):
for num in range(0,min(len(my_list),2)):
my_dataframe_df['order_'+str(num)] = my_list[num]
test_df = test_df.groupby('id_customer').apply(lambda x: order_to_col(test_df,list(x.id_order)))
但我确定这不是好方法
【问题讨论】:
-
将信息放入列表是否是一种可接受的选择?
-
是的@Yojimbo,但完美的输出将是新列
标签: python pandas group-by multiple-columns