我有一个相当大的数据集,它看起来类似于下面的数据集。这个数据集包含了10多列,这些列的值都是一样的,然后还有一个 "时间 "列,它将包含唯一的值。
我试图对时间列中每一行重复的数据进行加总,而对不重复的数据不做任何处理。
df1 = pd.DataFrame({'names':['Paul','George','Paul','John'],
'Time':[10,41,22,10],
'Date':['10/2/20', '10/1/20', '10/2/20','10/1/20']})
我试着对所有可能包含重复的列进行分组比,然后对时间进行加总,并重新设置索引,但是当与手动完成的电子表格进行比较时,行数比应该的要少。
先谢谢你的建议
IIUC,
首先,我们创建一个列表,列出所有的列,并remvoe。Time
的值,因为这就是我们要执行操作的列。我们的想法是将数值相加,如果没有重复,那么数值将是相同的,如果有重复的名字,就像Paul的情况一样,数值将被相加。
group_cols = df1.columns.tolist()
group_cols.remove('Time')
df2 = df1.groupby(group_cols,as_index=False)['Time'].sum()
print(df2)
names Date Time
0 George 10/1/20 41
1 John 10/1/20 10
2 Paul 10/2/20 32