【问题标题】:python pandas dataframe to make r(t-1).iloc[1:] = r(t).iloc[0:-1]python pandas dataframe 制作 r(t-1).iloc[1:] = r(t).iloc[0:-1]
【发布时间】:2019-07-31 02:53:44
【问题描述】:

我想制作熊猫数据框的一列,第二行到最后一行等于另一列的第一行到倒数第二行: 它看起来像:

r(t-1).iloc[1:] = r(t).iloc[0:-1](r(t) and r(t-1)) 

是同一数据框的列

我遇到的问题是 python 不明白我想转移复制数据的行:

IR['r(t-1)'].iloc[1:] = IR['r(t)'].iloc[0:-1]
/anaconda3/lib/python3.6/site-packages/pandas/core/indexing.py:190: 

SettingWithCopyWarning: 正在尝试在 DataFrame 中的切片副本上设置值

请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

  self._setitem_with_indexer(indexer, value)

有人知道怎么处理吗?

【问题讨论】:

  • 欢迎来到SO,可以提供Minimal, Complete, and Verifiable example吗?
  • 关于提问:正如其他人也指出的那样,写一个信息丰富的例子将有助于其他人理解你的问题,也有助于其他有同样问题的人认识到这是他们的问题也。即使您找到了答案,请慢慢来,通过将警告消息放入代码块来格式化您的问题,并包含一个信息丰富的 pandas 示例,该示例可以重现您遇到的相同错误

标签: python pandas dataframe time-series finance


【解决方案1】:

欢迎来到 SO。

如何解决您的问题

您的某一列似乎需要转变。正如您问题的前两行所示。你可以通过 shift() 方法来处理 pandas 数据帧。那么你的答案可能是:

df['new_row'] = df['old_row'].shift(1)

您可以使用负值和正值移动向前或向后移动

你遇到了什么错误

简单地说,pandas 已经提供了数据帧的读写方式,它实际上不接受任何其他的方式。警告表明您没有使用写入数据帧(使用iloc)的好方法(在熊猫看来!),因为iloc 主要用于按索引访问行。

这里有熊猫专家,如果我错了,请纠正我。

【讨论】:

  • 谢谢!解决我的问题!我喜欢堆栈溢出!
猜你喜欢
  • 2019-11-17
  • 1970-01-01
  • 2016-03-12
  • 2022-09-28
  • 2012-03-21
  • 2019-10-12
  • 2016-09-26
  • 2017-03-21
  • 2019-06-20
相关资源
最近更新 更多