Hea*_*eet 5 python dataframe pandas
我是 Python pandas 库和使用数据框的新手。我正在使用 Jupyter。我有点迷失了这种语法。
我想遍历行并将新值设置为列new_value。我以为我会这样做,但它引发了错误。
df_merged['new_value'] = 0
for i, row in df_merged.iterrows():
df_merged['new_value'][i] = i
Run Code Online (Sandbox Code Playgroud)
我还尝试进行如下计算:
df_merged['new_value'][i] = df_merged['move_%'] * df_merged['value']
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我收到此错误:
/usr/lib/python3.4/site-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: 试图在 DataFrame 的切片副本上设置一个值
请参阅文档中的警告:http://pandas。 pydata.org/pandas- 文档/稳定/ indexing.html#索引视图抗复制从sys.path中除去后CWD。
我在这里做错了什么?
谢谢。
你可以使用这个:
df_merged['new_value'] = df.index
Run Code Online (Sandbox Code Playgroud)
也可以使用apply方法。
df_merged['new_value'] = df_merged.apply(lambda row : row.name, axis=1)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:尝试在 DataFrame 切片的副本上设置一个值
这不是错误,只是警告消息。
从这个答案:
创建它SettingWithCopyWarning是为了标记可能令人困惑的“链接”分配,例如以下内容,这些分配并不总是按预期工作,特别是当第一个选择返回副本时。
您可以使用pd.DataFrame.loc方法避免此警告消息。
for i, row in df_merged.iterrows():
df_merged.loc[i,'price_new'] = i
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9993 次 |
| 最近记录: |