从数据框的最后一行选择特定列的正确方法

use*_*139 4 python pandas

我有一个数据框stock_pick并尝试设置某些列的最后一行

stock_pick.iloc[-1]["Regime"] = 0
Run Code Online (Sandbox Code Playgroud)

结果是,

/home/prowler/analysis-toolkit/anaconda2/envs/py3.6/lib/python3.6/site-packages/pandas/core/indexing.py:179: 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
  self._setitem_with_indexer(indexer, value)
Run Code Online (Sandbox Code Playgroud)

选择值并将其分配给最后一行中的特定列的正确方法是什么?

jez*_*ael 6

您可以将其get_loc用作列的位置,并且可以使用DataFrame.iloc

stock_pick.iloc[-1, stock_pick.columns.get_loc("Regime")] = 0
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是选择依据,DataFrame.loc然后按位置选择索引[-1]

stock_pick.loc[stock_pick.index[-1], "Regime"] = 0
Run Code Online (Sandbox Code Playgroud)

  • 您对使用`stock_pick ['Regime']。iloc [-1] = 0`有何看法? (2认同)