代码之家  ›  专栏  ›  技术社区  ›  Ma0

如何压缩两个熊猫数据帧

  •  1
  • Ma0  · 技术社区  · 6 年前

    我有两个熊猫数据帧,如下所示(给出了示例代码 here )

                       A         B         C         D
    2000-01-01  0.298399 -0.738440 -0.505438  0.324951
    2000-01-02  1.300686 -0.938543 -1.850977  0.868467
    

                       A         B         C         D
    2000-01-03  0.328032  0.325845 -0.289175  0.393732
    2000-01-04  0.091853 -1.450642 -0.544152  1.073248
    

    我想去 zip 这样我就可以处理它们的价值。为了澄清,我试图通过将相应的行压缩在一起,一次取两行。我不想创建一个新的df,除非这样更有效。


    我做的第一件事就是,

    for i, (x, y) in enumerate(zip(df1, df2)):
        print(i, x, y)
    

    希望能得到:

    0 (0.298399 -0.738440 -0.505438  0.324951) (0.328032  0.325845 -0.289175  0.393732)
    1 (1.300686 -0.938543 -1.850977  0.868467) (0.091853 -1.450642 -0.544152  1.073248)
    

    但我得到的是:

    0 A A
    1 B B
    

    怎样才能得到 典型的 拉链 使用数据帧时的行为?

    令人惊讶的是,我找不到我的问题的副本,因为两者都是 this this 问的是不同的问题。

    1 回复  |  直到 6 年前
        1
  •  1
  •   jezrael    6 年前

    可以将数据帧转换为numpy数组:

    for i, (x, y) in enumerate(zip(df1.values, df2.values)):
        print(i, x, y)
    

    您的解决方案返回列名称,因为它的过程如下:

    for i, (x, y) in enumerate(zip(df1.columns, df2.columns)):
        print(i, x, y)