Скажем, у меня есть ряд флагов в DataFrame:Изменения значений более конкретные показатели в DataFrame
a=pd.DataFrame({'flag':[0,1,0,0,1]})
и я хочу, чтобы изменить значение флагов, которые в конкретных индексах:
lind=[0,1,3]
Это простое решение:
def chnflg(series,ind):
if series.ix[ind]==0:
series.ix[ind]=1
else:
series.ix[ind]=0
map(partial(chnflg,a),lind)
он отлично работает, но есть две проблемы: во-первых, что это сделать s изменения в месте, в то время как я хотел бы новую серию в DataFrame. В конце концов, это не имеет большого значения.
Второй момент заключается в том, что он не кажется достаточно пифоническим. Можно ли сделать лучше?
Мне нужны все значения (измененные и неизменные), а не на месте. В этом случае я могу работать с вашим решением: a ['nflag'] = a ['flag'], а затем использовать ваше решение на месте – user2988577