【问题标题】:How to shift an entire column down (including the header) and then rename the header 'Name'?如何向下移动整列(包括标题)然后重命名标题“名称”?
【发布时间】:2021-04-14 00:35:37
【问题描述】:

我仍在学习编码,如果能得到任何帮助,我将不胜感激。

我有一个数据框,其中一个人的名字是列标题。我想将列标题向下移动 1 行并将列重命名为“名称”。但是,每个数据帧的列标题会有所不同。它不会总是同一个人的名字。

这是其中一个数据框的示例:

index   Patrick
0       Stan
1       Frank
2       Emily
3       Tami

我希望将带有名称的整个列向下移动 1 行并将列标题重命名为“名称”,但在我的研究过程中无法找到。

以下是所需输出的示例:

index   Names
0       Patrick
1       Stan
2       Frank
3       Emily
4       Tami

我已经看到使用“shift”的选项,但是,我不知道在这种情况下这是否能正常工作。

我将在下面发布被询问的类似问题的 url。在这个问题中,他们想上移一个。在我的问题中,我想向下移动一个。

Shift column in pandas dataframe up by one?

我在网上找到的代码示例如下:

df.gdp = df.gdp.shift(-1)

我看到的问题是我将使用多个数据框,因此人名(列标题)会有所不同。我不会每次都用同一个名字。

有什么帮助吗?我将继续工作,如果我能找到答案,我会发布答案。提前感谢您提供的任何帮助。

【问题讨论】:

    标签: python dataframe shift


    【解决方案1】:

    也许这会有所帮助:

    df = pd.DataFrame({'index': range(4), 'Patrick': ['Stan', 'Frank', 'Emily', 'Tami']})
    
    names = pd.concat([pd.Series(df.columns[1]),df.iloc[:, 1]]).reset_index(drop=True)
    
    df = pd.DataFrame({'Names': names})
    
    df
    
      index    Names
          0  Patrick
          1     Stan
          2    Frank
          3    Emily
          4     Tami
    

    【讨论】:

    • 请@Bruno Mello 回复您!我现在就试试这个。如果数据帧的长度发生变化,您是否认为此代码仍然有效?
    • 我认为它会因为新数据框的长度设置为len(df)+1
    • 这看起来很完美。我会花时间研究它,并会从经验中学到很多东西。 Ty 先生 @Bruno Mello 给你时间! =)
    • 它看起来像打印另一个索引,所以现在有 2 个索引。有什么建议么?我确信我可以找出如何消除其他索引,但想知道代码中是否有一个小的调整可以防止这种情况发生。谢谢楼主!
    • 当然,发生这种情况是因为我认为您问题上的index 列是实际列而不是数据框的索引,我现在编辑了问题,看看它现在是否正常工作@AbleArcher
    猜你喜欢
    • 2019-03-20
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2022-06-22
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多