因此,我有一个关于 2005 年至 2016 年 NFL 统计数据的大数据集。问题是,2009 年添加了一个新类别,因此我的列在 2009 年之前偏移。我希望所有具有“NFL Season”列 < 的行2009 赛季向右移动,但只有第 11 列到倒数第二列(因此 [11:-1])。
我设法以这种方式做到这一点,但迭代所有这些行(大约 10,000)需要很长时间。有没有更快的方法来做到这一点?我试图看看是否有一种方法可以使用.isinwhere 我可以说该行是否在我的“rows_to_shift”中,但无法弄清楚它是如何工作的。
就像我说的,一定有一种更好或更有效的方法,而我在学习 pandas 时还没有意识到。
这是我一直在使用的代码:
rows_to_shift = rb_df[rb_df['NFL Season'] < 2009].index.tolist()
for i in rows_to_shift:
rb_df.iloc[[i],11:-1] = rb_df.iloc[[i],11:-1].shift(1,axis=1)
Run Code Online (Sandbox Code Playgroud)
看来你需要:
rows_to_shift = rb_df[rb_df['NFL Season'] < 2009].index
rb_df.iloc[rows_to_shift,11:-1] = rb_df.iloc[rows_to_shift,11:-1].shift(1,axis=1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2655 次 |
| 最近记录: |