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

时间:2018-12-31 17:14:45

标签: python pandas dataframe

以下内容将我的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感觉不对。

1 个答案:

答案 0 :(得分:1)

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

此外,根据您的评论和对query的理解,我相信此函数实际上将整数转换为浮点数,因此,从等式中删除将意味着不再需要强制转换。

df.where