我有一张数据,看起来是这样的:
Province Admissions
Eastern Cape 10
Private 3
Public 7
Free State 20
Private 15
Public 5我想把“私人”和“公共”改为“省”。我想实现以下数据:
Province Admissions
Eastern Cape 10
Eastern Cape-Private 3
Eastern Cape-Public 7
Free State 20
Free State-Private 15
Free State-Public 5实际上,我已经通过以下代码实现了这一点:
for row in range(0,len(df)):
df['Province'] = np.where((df['Province'] == 'Private'), df['Province'].shift(1)+' '+ df['Province'], df['Province'])
df['Province'] = np.where((df['Province'] == 'Public'), df['Province'].shift(2)+' '+ df['Province'], df['Province'])不过,我想以一种更一般的方法去做,以防私人和公众的秩序被交换。现在,二等兵先于公众,因此我的方法工作。如有任何意见,将不胜感激!
发布于 2021-12-06 04:12:28
您可以执行mask和ffill创建添加数组
s = df.Province.mask(df.Province.isin(['Private','Public'])).ffill()
df['Province'] = np.where(df.Province.isin(['Private','Public']), s + ' ' + df.Province, df.Province)https://stackoverflow.com/questions/70240761
复制相似问题