Py学习  »  Python

在python pandas中,将group by之后的列的多个值合并为一列

H_A • 5 年前 • 3513 次点击  

我希望完成与此线程中类似的任务: Merge multiple column values into one column in python pandas

但不同的是,我希望创建一个新列,在按其他列分组后合并列中的所有非空值。下面是一个玩具示例:

df= pd.DataFrame({'ID1' : [1,1,2,2,3,3,3],'ID2' : ['a','a','b','b','c','c','c'],
             'Status' : pd.Series([np.nan,'1', np.nan,'1','2',np.nan,'1'], 
                                  dtype="category")})

 df
Out[74]: 
     ID1 ID2 Status
 0    1   a    NaN
 1    1   a      1
 2    2   b    NaN
 3    2   b      1
 4    3   c      2
 5    3   c    NaN
 6    3   c      1

然后我想 groupby ID1 ID2 :

gr = df.groupby(['ID1','ID2'])

然后,我希望我的结果是这样的:

Out:
   NewCol
0   1
1   1
2   2,1

DataFrame 包含 non-null Status 列分组依据 ID2号

提前谢谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56566
 
3513 次点击  
文章 [ 1 ]  |  最新文章 5 年前