【发布时间】:2017-07-22 13:40:37
【问题描述】:
以下是我的数据:
name id junk date time value value2
abc 1 1 1/1/2017 18:07:54 5 10
abc 1 2 1/1/2017 19:07:54 10 15
abc 2 3 2/1/2017 20:07:54 15 20
abc 2 4 2/1/2017 21:07:54 20 25
def 3 5 3/1/2017 22:07:54 25 30
def 3 6 3/1/2017 23:07:54 30 35
def 4 7 4/1/2017 12:07:54 35 40
def 4 8 4/1/2017 13:07:54 40 45
我想根据name、id 和date 三列删除重复项并取第一个值。我尝试了以下命令:
data.drop_duplicates(subset=['name', 'id', 'date'],keep = 'first')
我还想将这三列分组并取value 和value2 列的总和,我尝试了以下列:
data[['name', 'id', 'date', 'value']].groupby(['name', 'id', 'date']).sum()
data[['name', 'id', 'date', 'value2']].groupby(['name', 'id', 'date']).sum()
现在我想加入所有三个数据框并获取列。我在想应该有更好的方法来做到这一点?以下是我正在寻找的输出:
name id junk date time value value2
abc 1 1 1/1/2017 18:07:54 15 25
abc 2 3 2/1/2017 20:07:54 35 45
def 3 5 3/1/2017 22:07:54 55 65
def 4 7 4/1/2017 12:07:54 75 85
我想考虑删除基于name、id 和date 列的重复项,取junk 和time 列的第一个值,并添加value 和value2列。
谁能帮我做这件事?
【问题讨论】:
标签: python python-2.7 python-3.x pandas aggregate