【发布时间】: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