gpt4 book ai didi

python - 在循环python中更改数据框列中的值

转载 作者:太空狗 更新时间:2023-10-30 02:37:24 24 4
gpt4 key购买 nike

我是 Python pandas 库和使用数据框的新手。我正在使用木星。我有点迷失了这种语法。

我想遍历行并为 new_value 列设置新值。我以为我会这样做,但它引发了一个错误。

df_merged['new_value'] = 0

for i, row in df_merged.iterrows():
df_merged['new_value'][i] = i

我也尝试过这样的计算:

 df_merged['new_value'][i] = df_merged['move_%'] * df_merged['value']

但它不起作用。

我收到这个错误:

/usr/lib/python3.4/site-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas- docs/stable/indexing.html#indexing-view-versus-copy after removing the cwd from sys.path.

我在这里做错了什么?
谢谢。

最佳答案

你可以使用这个:

df_merged['new_value'] = df.index

你也可以使用apply方法。

df_merged['new_value'] = df_merged.apply(lambda row : row.name, axis=1)

I am getting this error : A value is trying to be set on a copy of a slice from a DataFrame

这不是错误,只是一条警告消息。

来自 this回答:

创建 SettingWithCopyWarning 是为了标记可能令人困惑的“链式”赋值,如下所示,它们并不总是按预期工作,尤其是当第一个选择返回副本时。

您可以使用 pd.DataFrame.loc 方法避免此警告消息。

for i, row in df_merged.iterrows():
df_merged.loc[i,'price_new'] = i

关于python - 在循环python中更改数据框列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50187932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com