我想做一列熊猫的数据框,第二行到最后一行等于另一列的第一行到倒数第二行: 它看起来像:
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:
设置与复制警告:正在尝试在数据帧中的切片副本上设置值
请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
self._setitem_with_indexer(indexer, value)
有人知道如何处理它吗?
欢迎来到 SO。
如何解决您的问题
您似乎需要在其中一列中进行更改。 正如问题的前两行所示。 您可以通过shift()
Pandas 数据帧的方法执行此操作。那么你的答案可能是:
df['new_row'] = df['old_row'].shift(1)
您可以使用负值和正值向前或向后移动
您遇到的错误是什么
简而言之,熊猫提供了数据帧写入和读取的方法,它实际上不接受任何其他类型的方法。警告表明您没有使用写入数据帧的好方法(iloc
以熊猫的拙见!),因为iloc
主要用于按索引访问行。
这里有任何熊猫专家,如果我错了,请纠正我。