gpt4 book ai didi

python - 当 .where() 无法将数据转换回原始类型时该怎么办

转载 作者:行者123 更新时间:2023-12-01 08:29:21 25 4
gpt4 key购买 nike

以下内容将我的 id 更改为 float,并且我一直在尝试将该列强制转换回 int,因为 try_cast 参数不是没锻炼。

(df1.merge(df2, on='id', how='left', indicator=True)
.where(lambda x: x._merge=='left_only', try_cast=True)
.get(['id'])
.dropna()
)

过去我会这样设置:

merged = df1.merge(df2, on='id', how='left', indicator=True)
merged['id'] = merged['id'].astype(int)
merged[merged['_merge']=='left_only']

我是 Python 新手,我一直在探索链接运算符以加快我在 jupyter 笔记本中的探索。

  1. 如何内联执行此操作?
  2. where 方法是最好的使用方法吗?为了过滤我想要的结果而 dropna 感觉不对。

最佳答案

where 方法是最好的方法吗?”实际上,我们可以用 query 做得更好。

另外,根据您的评论和我对 df.where 的理解,我相信这个函数实际上将整数向上转换为 float ,因此将其排除在等式之外将意味着不再需要进一步转换。

(df1.merge(df2, on='id', how='left', indicator=True)
.query('_merge == "left_only"'))

关于python - 当 .where() 无法将数据转换回原始类型时该怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53989846/

25 4 0