我已经发布了一个问题,但是我表现得很糟糕。这是我的问题:
我有一个像这样的数据框架:
<表类>
Col1
Col2
Col3
Col4
所列
tbody><<tr>科幻小说 123 01/02 到 ,佤邦 BF 543 30/12 做 ,房颤 QW 241 30/12 房颤 ,房颤 科幻小说 123 01/02 WA ,佤邦 QW 789 20/11 D D 科幻小说 678 31/12 OT OT 表类>
使用GroupBy.transform
与numpy.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
NaN
s在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)