【问题标题】:Issue with creating a new DataFrame column创建新 DataFrame 列的问题
【发布时间】:2021-11-15 09:00:16
【问题描述】:

我有一个有趣的问题,我似乎无法弄清楚。我有一个包含一堆 DeliveryID 和一个单独的 Delivery ID 列表的 DataFrame。我编写的用于计算新的布尔值列的代码如下所示:

df['col_new'] = df.DeliveryId.isin(delivery_list)

代码在 Jupyter Notebook 中工作,但当我将其放入 python 脚本时,它总是返回“False”,尽管 Jupyter 中的结果不同。

函数是:

def get_percent(df, delivery_list):
    df['col_new'] = df.DeliveryId.isin(delivery_list)
    pct = round((len(df[df.col_new == True])/len(df.col_new)) * 100, 1)
    print(f'% of Deliveries: {pct}%')
    return df

如果我在函数中放置一个 print(df.new_col.value_counts()) 来帮助调试,我只会收到 False 值。

我已按照与我的脚本相同的顺序在 Jupyter 上的单个单元格中安排每个函数,重新启动内核并运行所有单元格,这些单元格给了我正确的输出,但是在运行我的脚本时我没有得到相同的输出.py 文件。

我认为计算新列的值的逻辑存在一些问题,可能是由于 Jupyter。

有什么帮助/建议吗?

【问题讨论】:

    标签: python python-3.x pandas jupyter-notebook


    【解决方案1】:

    我找到了解决方案。我正在使用具有某种奇怪权限的虚拟 Windows 10 桌面工作。一旦我通过 Anaconda3 导航器以管理员权限运行 CLI,一切都按预期运行。

    为了后代,如果您有类似的问题,请始终尝试以管理员身份运行命令提示符,或使用 Anaconda Navigator 在正确的环境中打开它。

    【讨论】:

      猜你喜欢
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 2016-02-10
      • 2021-12-30
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多