【问题标题】:Shift entire column on a pandas dataframe在熊猫数据框上移动整列
【发布时间】:2014-04-16 09:25:27
【问题描述】:

我想右移一整列,第一列用 NAN 填充,最后一列去掉:

df0:             A  B  C  D
    2013-12-31   10 6  6  5        
    2014-01-31   11 7  5  5
    2014-02-28   15 8  8  8

进入

df1:             A   B  C  D
    2013-12-31   NaN 10 6  6          
    2014-01-31   NaN 11 7  5  
    2014-02-28   NaN 15 8  8  

我的解决方案是将列拆分为系列,然后重新组合数据框。 有没有更有效的方法?

【问题讨论】:

    标签: python pandas dataframe shift


    【解决方案1】:

    shift 按行移动数据。这是我的诀窍

    df.T.shift().T
    

    更新

    axis 为 1 时的问题,目前开发版本已解决。如果您生活在最前沿,请使用

    df.shift(axis=1)
    

    改为。

    【讨论】:

    • 我会发布这个作为答案,但它看起来不优雅,你能解释为什么df.shift(axis=1) 不起作用吗?
    • with df.shift.(axis=1) 我收到一个错误:IndexError: index 4 is out of bounds for axis 0 with size 4... waitingkuo 的解决方案很棒!
    • @waitingkuo 是的,我刚刚尝试了一个有 4 行的示例,并注意到它使用 axis=1 正确移动,但将 NaN 放在第一行而不是第一列,很高兴知道这些错误已修复下一个版本
    • 一年多过去了,还是有bug。
    猜你喜欢
    • 2016-05-21
    • 1970-01-01
    • 2019-03-08
    • 2013-12-04
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 2020-06-03
    相关资源
    最近更新 更多