在python Pandas中创建一个具有唯一值的新列-不分组



我已经发布了一个问题,但是我表现得很糟糕。这是我的问题:

我有一个像这样的数据框架:

<表类> Col1 Col2 Col3 Col4 所列 tbody><<tr>科幻小说12301/02到,佤邦BF54330/12做,房颤QW24130/12房颤,房颤科幻小说12301/02WA,佤邦QW78920/11DD科幻小说67831/12OTOT

使用GroupBy.transformnumpy.where:

m = df.Col1.eq('SF')
s1 = df.groupby(['Col2','Col3'])['Col4'].transform(', '.join)
s2 = df.groupby(['Col3'])['Col4'].transform(', '.join)
df['DESIRED COLUMN'] = np.where(m, s1, s2)
print (df)
Col1  Col2   Col3 Col4 DESIRED COLUMN
0   SF   123  01/02   UP         UP, WA
1   BF   543  30/12   DO         DO, AF
2   QW   241  30/12   AF         DO, AF
3   SF   123  01/02   WA         UP, WA
4   QW   789  20/11    D              D
5   SF   678  31/12   OT             OT

NaNs在Col2, Col3中的可能解:

m = df.Col1.eq('SF')
df1 = df.fillna({'Col2':'nan', 'Col3':'nan'})
s1 = df1.groupby(['Col2','Col3'])['Col4'].transform(', '.join)
s2 = df1.groupby(['Col3'])['Col4'].transform(', '.join)
df['DESIRED COLUMN'] = np.where(m, s1, s2)

相关内容

  • 没有找到相关文章

最新更新