如何将 python 中偶数行的值替换为奇数行?

How to replace values from even rows into odd rows in python?

我想用偶数行的值替换所有奇数行的值。这是我现在的数据框:

例如在第二个索引中:Cheek meat,trimmed 的值为 141.23,我希望所有这些值替换顶部的值,即第一个索引行。

我已经尝试使用 .loc 方法和 replace 方法,但我无法这样做。我也是 python 的新手。请帮忙!谢谢

示例数据框

import pandas as pd
df = pd.DataFrame({'Date': ['2011', '2012', '2013','2014'], 
                   'col1': [20, 50, 40,60],'col2': [20, 50, 40,60]}})

Out[1]:
     Date  col1 col2
  1  2011  20    20
  2  2012  50.   50
  3  2013  40.   40
  4  2014  60.   60

我希望输出为

Out[2]:
     Date  col1 col2
  1  2011  50.   50
  2  2012  00.   00
  3  2013  60.   60
  4  2014  00.   00

比如说,我们有多个列。

试试这个:

df = df.set_index('Date').shift(-1)
df.loc[df.reset_index().index % 2 == 1] = 0
df = df.reset_index()

输出:

>>> df
   Date  col1  col2
0  2011  50.0  50.0
1  2012   0.0   0.0
2  2013  60.0  60.0
3  2014   0.0   0.0