Python 熊猫通过保留一列的第一个元素和另一列的最后一个元素进行合并
我有一个具有不同值和ID的数据帧,它们可以是相同的Python 熊猫通过保留一列的第一个元素和另一列的最后一个元素进行合并,python,pandas,Python,Pandas,我有一个具有不同值和ID的数据帧,它们可以是相同的 df = pd.DataFrame({'A': ['chr1','chr1','chr1','chr1','chr1','chr2'], 'B': [700,750,800,850,900,200], 'C': [750,800,850,900,950,250], 'D':['id_1','id_1','id_1','
df = pd.DataFrame({'A': ['chr1','chr1','chr1','chr1','chr1','chr2'],
'B': [700,750,800,850,900,200],
'C': [750,800,850,900,950,250],
'D':['id_1','id_1','id_1','id_1','id_1','id_2']})
我要做的是保持B的最低元素,C的较高元素,使A和D的值相同
输出应如下所示:
A B C D
0 chr1 700 950 id_1
1 chr2 200 250 id_2
我试着用
groupby('D').agg(['first', 'last'])
但这不是我想要的…按列名称和聚合函数使用字典:
df1 = (df.groupby('D', as_index=False)
.agg({'A':'first', 'B':'first', 'C':'last'})
[['A','B','C','D']])
print (df1)
A B C D
0 chr1 700 950 id_1
1 chr2 200 250 id_2
使用
dict
传递agg中的名称和函数
df.groupby(['A','D'],as_index=False).agg({'B':'first','C':'last'}).reindex(columns=df.columns)
A B C D
0 chr1 700 950 id_1
1 chr2 200 250 id_2