python – Pandas中SQL中EXCEPT子句的类比是什么?

python – Pandas中SQL中EXCEPT子句的类比是什么?,第1张

概述我有一个示例pandas dataframe df: col1 col2 col3 col4 0 a 1.0 2.0 3 1 b NaN NaN 6 2 c NaN 8.0 9 3 d NaN 11.0 12 我有一个示例pandas dataframe df:
col1    col2    col3    col4      0   a      1.0    2.0      3      1   b      NaN    NaN      6      2   c      NaN    8.0      9      3   d      NaN    11.0    12      4   e     13.0    14.0    15      5   f     17.0    18.0    19      6   g     21.0    22.0    23

和第二个df1:

col1    col2    col3    col4      0  a      1.0     2.0      3      4  e     13.0    14.0     15      5  f     17.0    18.0     19      6  g     21.0    22.0     23

我想获得与df1不重叠的df子集.实际上我在sql中寻找等效的EXCEPT *** 作数.

我使用了subtract()函数 – 但这显然是错误的,因为减法执行元素数字减法.所以我收到一条错误消息:

TypeError: unsupported operand type(s) for -: 'str' and 'str'

所以问题是:在Pandas的sql中,EXCEPT的等价物是什么?

解决方法 我认为你首先需要 set_index的所有字符串列:
df2 = df.set_index('col1').subtract(df1.set_index('col1'),axis='columns')print (df2)      col2  col3  col4col1                  a      0.0   0.0   0.0b      NaN   NaN   NaNc      NaN   NaN   NaNd      NaN   NaN   NaNe      0.0   0.0   0.0f      0.0   0.0   0.0g      0.0   0.0   0.0

要么:

df2 = df.set_index('col1').subtract(df1.set_index('col1'),axis='columns',fill_value=0)print (df2)      col2  col3  col4col1                  a      0.0   0.0   0.0b      NaN   NaN   6.0c      NaN   8.0   9.0d      NaN  11.0  12.0e      0.0   0.0   0.0f      0.0   0.0   0.0g      0.0   0.0   0.0

编辑问题编辑:

print (df.isin(df1))    col1   col2   col3   col40   True   True   True   True1  False  False  False  False2  False  False  False  False3  False  False  False  False4   True   True   True   True5   True   True   True   True6   True   True   True   Trueprint (df.isin(df1).all(axis=1))0     True1    False2    False3    False4     True5     True6     Truedtype: boolprint (~df.isin(df1).all(axis=1))0    False1     True2     True3     True4    False5    False6    Falsedtype: boolprint (df[~(df.isin(df1).all(axis=1))])  col1  col2  col3  col41    b   NaN   NaN     62    c   NaN   8.0     93    d   NaN  11.0    12
总结

以上是内存溢出为你收集整理的python – Pandas中SQL中EXCEPT子句类比是什么?全部内容,希望文章能够帮你解决python – Pandas中SQL中EXCEPT子句的类比是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存