У меня есть фрейм данных, где три столбца являются координатами данных («H_x», «H_y» и «H_z»).Я хочу вычислить радиус-вектор данных и добавить его в качестве нового столбца в моем фрейме данных.Но у меня есть какая-то проблема с функцией применения панд.Мой код:
def radvec(x, y, z):
rv=np.sqrt(x**2+y**2+z**2)
return rv
halo_field['rh_field']=halo_field.apply(lambda row: radvec(row['H_x'], row['H_y'], row['H_z']), axis=1)
Я получаю ошибку:
group_sh.py:78: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy
halo_field['rh_field']=halo_field.apply(lambda row: radvec(row['H_x'], row['H_y'], row['H_z']), axis=1)
Я получаю столбец, который мне нужен, но я все еще путаюсь с этим сообщением об ошибке.Я знаю, что здесь есть подобные вопросы, но я не мог найти, как решить мою проблему.Я довольно новичок в питоне.Вы можете помочь?
Редактировать: halo_field
- это фрагмент другого фрейма данных:
halo_field = halo_res[halo_res.N_subs==1]