【问题标题】:Reshape pandas dataframe rows重塑熊猫数据框行
【发布时间】:2017-11-18 19:27:51
【问题描述】:

我有一个来自 pandas 的 excel 数据集,如下所示: 行:123567,列 ABCDEF

      A B C D E  F
1   0  5  7 1  8 6
2   2  3  2 4  1 5
3   3  1  1  2 3 4
5   3 5  5  7 9  4
6  4  5  4  6  7 7
7  6  8  3  3  1 2

但我想在此之后制作数据: 3排是一排

1   0 5 7 1 8 6  2 3 2 4 1 5 3 1 1 2 3 4
2   3 5 5 7 9 4 4 5 4 6 7 7 6 8 3 3 1 2

【问题讨论】:

    标签: python arrays pandas dataframe


    【解决方案1】:

    最快,也可能是最简单的方法是在值上调用reshape

    df.values.reshape(-1, df.shape[1] * 3)
    
    array([[0, 5, 7, 1, 8, 6, 2, 3, 2, 4, 1, 5, 3, 1, 1, 2, 3, 4],
           [3, 5, 5, 7, 9, 4, 4, 5, 4, 6, 7, 7, 6, 8, 3, 3, 1, 2]])
    

    但是,如果您的数据没有执行整形的确切行数,这将出错。


    你也可以使用groupby + apply:

    df.groupby(np.arange(len(df)) // 3 * 3).apply(lambda x: x.values.ravel())
    

    即使第一个选项不起作用,这也应该有效。

    【讨论】:

    • 感谢您的帮助。我又有一个问题。你能帮我像以前一样使用数据,但结果是通过在excel writer中使用循环存储在excel中的吗?
    • @wennypuspita 当然。你能打开一个新问题吗?似乎与此无关,因此如果答案有帮助,请勾选我的答案旁边的灰色复选标记并将其切换为绿色以将其标记为已接受,然后打开一个新问题。谢谢。
    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2017-04-08
    相关资源
    最近更新 更多