【问题标题】:Is there a difference between .values() in linux verus windows?linux verus windows中的.values()有区别吗?
【发布时间】:2019-12-22 02:30:01
【问题描述】:

我已经在我的 windows 计算机上编写了一些代码,并将其转移到 linux 系统上。他们都有 python3 并且应该有相同的库。然而,虽然我的脚本在 Windows 中运行良好,但我在 linux 上收到一条错误消息。

这是导致问题的代码部分:

Normalized=(Combined/Dilutions.values)
#where 
print(Combined)
   Column_4  Column_4  Column_4  Column_4  Column_4  Column_4
2     50034     50034     32355     21058     10457         0
3     38230     38230     31054     18963     11770         0
4     34503     34503     22208     14216      5492         0
5     34219     34219     22975     11450      4148         0
6     37442     37442     25319     16206      7369         0
7     32144     32144     21293     14307      5594         0
8     28053     28053     19972     10767      4448      2634
9     30395     30395     22899     10458      4967         0

#and 
print (Dilution)
          0         1        2        3        4      5
0  103000.0  103000.0  95000.0  79600.0  78100.0  74562

当然,虽然这些是不同的大小,但我可以将稀释的值划分到合并中的每一行。看来我无法在linux中这样做,运行这个命令给了我这个。

Traceback (most recent call last):
  File "blue.py", line 61, in <module>
    Normalized=(Combined/Dilutions.values)
  File "/usr/lib/python3/dist-packages/pandas/core/ops.py", line 1257, in f
    other = _align_method_FRAME(self, other, axis)
  File "/usr/lib/python3/dist-packages/pandas/core/ops.py", line 1180, in _align_method_FRAME
    raise ValueError(msg)
ValueError: Unable to coerce to DataFrame, shape must be (8, 6): given (1, 6)

在 Windows 中是否有我在 linux 中缺少的包?否则我不知道为什么它可以在一个操作系统上运行,而在另一个操作系统上不行。

【问题讨论】:

  • 你可能在 Linux 上有一个旧版 pandas,see
  • 难怪我被你的代码弄糊涂了!变量和函数名称应遵循lower_case_with_underscores 样式。另外,你可能不应该使用.values。你在使用虚拟环境吗?你的程序打算做什么,你也许可以完全放弃 Pandas。
  • 为简单起见,我将链接您我的代码所在的位置,以及我的描述:codereview.stackexchange.com/questions/234458/… 但简而言之,这部分代码通过将值划分为规范化我的数据表值我的数据表的每一行按稀释值计算。我使用 pandas 来形成数据表(所以我不能完全放弃它)。更明显的是,为什么当您在链接中看到完整代码时,我只在此处发布了错误的一部分,因为考虑到这些输入,那一行应该可以工作。
  • @samman 好的,我会看看其他问题。

标签: python python-3.x linux


【解决方案1】:

您可以在每个系统上尝试pip freeze 以确认每个系统上安装了哪些软件包和版本。要获得更多控制权,您可以在 Windows 和 Linux 上安装 Anaconda,然后您可以管理每个包的特定版本……包括 Python 本身。

当您使用不同大小的数据帧(或 Numpy 数组)时,您不应该广播以覆盖大小的差异吗?

【讨论】:

  • 看来这可能是问题所在。 linux系统使用的是pandas 0.22,而windows使用的是0.25。至于第二个问题, .values 似乎可以弥补大小差异。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 2022-06-30
  • 2015-01-20
  • 2020-12-01
  • 2020-07-22
  • 2011-07-12
  • 2012-08-12
相关资源
最近更新 更多