Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫通过保留一列的第一个元素和另一列的最后一个元素进行合并_Python_Pandas - Fatal编程技术网

Python 熊猫通过保留一列的第一个元素和另一列的最后一个元素进行合并

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','

我有一个具有不同值和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','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