如何压缩两个 pandas 数据框

Ev.*_*nis 5 python python-3.x pandas

我有两个 Pandas 数据框,如下所示(此处给出的示例代码)。

\n\n
                   A         B         C         D\n2000-01-01  0.298399 -0.738440 -0.505438  0.324951\n2000-01-02  1.300686 -0.938543 -1.850977  0.868467\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
                   A         B         C         D\n2000-01-03  0.328032  0.325845 -0.289175  0.393732\n2000-01-04  0.091853 -1.450642 -0.544152  1.073248\n
Run Code Online (Sandbox Code Playgroud)\n\n

我希望zip他们能够处理他们的价值观。为了澄清一下,我试图通过将相应的行压缩在一起来一次获取两行 \xe2\x80\x94 。我不想创建一个新的 df 除非这样会更有效。

\n\n
\n\n

我做了我想到的第一件事,即

\n\n
for i, (x, y) in enumerate(zip(df1, df2)):\n    print(i, x, y)\n
Run Code Online (Sandbox Code Playgroud)\n\n

并期望得到类似的东西:

\n\n
0 (0.298399 -0.738440 -0.505438  0.324951) (0.328032  0.325845 -0.289175  0.393732)\n1 (1.300686 -0.938543 -1.850977  0.868467) (0.091853 -1.450642 -0.544152  1.073248)\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我得到的是:

\n\n
0 A A\n1 B B\n
Run Code Online (Sandbox Code Playgroud)\n\n

在使用数据帧时如何获得典型行为? zip

\n\n

令人惊讶的是,我找不到我的问题的重复项,因为这个这个都提出了不同的问题。

\n

jez*_*ael 7

您可以将 DataFrame 转换为 numpy 数组:

for i, (x, y) in enumerate(zip(df1.values, df2.values)):
    print(i, x, y)
Run Code Online (Sandbox Code Playgroud)

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

for i, (x, y) in enumerate(zip(df1.columns, df2.columns)):
    print(i, x, y)
Run Code Online (Sandbox Code Playgroud)