使用Pandas生成3D“矩阵”,基于比较两个数据帧[Python]

大家,早安。我正在使用 Python 和 Pandas。

我有两个数据帧,类型如下:

df_C = pd.DataFrame(data=[[-3,-1,-1], [5,3,3], [3,3,1], [-1,-1,-3], [-3,-1,-1], [2,3,1], [1,1,1]], columns=['C1','C2','C3'])

   C1  C2  C3
0  -3  -1  -1
1   5   3   3
2   3   3   1
3  -1  -1  -3
4  -3  -1  -1
5   2   3   1
6   1   1   1


df_F = pd.DataFrame(data=[[-1,1,-1,-1,-1],[1,1,1,1,1],[1,1,1,-1,1],[1,-1,-1,-1,1],[-1,0,0,-1,-1],[1,1,1,-1,0],[1,1,-1,1,-1]], columns=['F1','F2','F3','F4','F5'])

   F1  F2  F3  F4  F5
0  -1   1  -1  -1  -1
1   1   1   1   1   1
2   1   1   1  -1   1
3   1  -1  -1  -1   1
4  -1   0   0  -1  -1
5   1   1   1  -1   0
6   1   1  -1   1  -1

我希望能够“交叉”这两个数据帧,以生成 3D 或一个,如下所示:

生成的新数据必须将df_F的值与df_C的值进行比较,同时考虑以下因素:

  • 如果两个值都为正,则生成 1
  • 如果两个值都是负数,则生成 1
  • 如果一个值为正,另一个为负,则生成 0
  • 如果任何值为零,则生成 None (NaN)

真表

df_Cdf_F数据对比

df_C vs df_F = 3D
  +       +     1
  +       -     0
  +       0     None
  -       +     0
  -       -     1
  -       0     None
  0       +     None
  0       -     None
  0       0     None

你是编程专家,请指导我,当我生成这个矩阵时,我比较了这些值。我想用熊猫来做。我已经用循环 (for) 和条件 (if) 完成了它,但它在视觉上令人不快,我认为使用 Pandas 它更高效和优雅。

谢谢你。

以上是使用Pandas生成3D“矩阵”,基于比较两个数据帧[Python]的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>