这是交易数据的一部分,正在处理Python(熊猫)以进行分类工作。 每个客户的Customer_ID都是唯一的,每笔交易的“输入时间”都是唯一的,任何客户在一段时间内都会进行多次交易。 大多数交易重复两次或更多次,具体取决于与一个交易关联的标签数量(但通常为2至4个标签)。 我想将一笔交易的多个条目仅合并为1行,并带有1个customer_ID,一个性别,年龄,输入时间和所有Tag属性。
我尝试按customer_id和输入日期分组,但是没有得到想要的结果。
例如,customer_ID:5519707在2019-04-27 16:07:05 + 00:00仅有一笔交易有四个条目。 example
我要用1行替换这4行,如下所示: expected result
那么有效的方法是什么?因为我的数据集有250万行和30多个属性,总大小为700MB。
答案 0 :(得分:0)
如果要考虑“标签”列,以下是一种有效的方法。
df1 = pd.DataFrame({"an":["j","j","j","k","k"], "bn":[0,1,1,0,1], "cn":[2,1,2,3,1]})
df1.groupby(["an"])["bn", "cn"].sum().reset_index()
输入:
an bn cn
0 j 0 2
1 j 1 1
2 j 1 2
3 k 0 3
4 k 1 1
输出:
an bn cn
0 j 2 5
1 k 1 4
答案 1 :(得分:0)
尝试一下:
df.groupby(['id']).max().reset_index()
输入
id gender age tag1 tag2
0 200 male 20 0 1
1 200 male 20 1 0
2 200 male 20 0 0
输出
id gender age tag1 tag2
0 200 male 20 1 1