小编im7*_*im7的帖子

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

我有一个示例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
Run Code Online (Sandbox Code Playgroud)

和第二个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
Run Code Online (Sandbox Code Playgroud)

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

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

       TypeError: unsupported operand type(s) for -: 'str' and 'str' …
Run Code Online (Sandbox Code Playgroud)

python sql except pandas

6
推荐指数
2
解决办法
3206
查看次数

dropna() 不接受 thresh 参数和传递给 axis 参数的列表

我正在尝试 dropna(),已阅读文档。

我创建了一个示例数据框来使用:

        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
Run Code Online (Sandbox Code Playgroud)

现在我遇到的问题是参数 thresh 以及将列表传递到参数轴。

a) Threshhold 被忽略并且 dropna() 不在任何行中运行

    df.dropna(thresh=1)
Run Code Online (Sandbox Code Playgroud)

和 df.dropna(thresh=2) 都返回未更改的原始 df 。

b) 传递给 axis 参数的列表指示 dropna() 应在两个轴上同时操作,该列表将被忽略。选择轴 0,这是默认值。

   df.dropna(axis=[0,1]) 
Run Code Online (Sandbox Code Playgroud)

返回:

  col1  col2    col3    col4
0   a   1.0      2.0    3
4   e   13.0    14.0    15
5 …
Run Code Online (Sandbox Code Playgroud)

python nan pandas

4
推荐指数
1
解决办法
1万
查看次数

使用列表推导对列表中的奇数求和,对于和如果在一行中

我正在学习Python,我正在尝试一些练习.我试图使用列表理解将所有奇数从0到9加起来,如果在一行中.

我尝试了以下代码:

for idx in range(10): s = 0 if idx == 0 else s = [(i % 2) for i in range(10)][idx] * range(10)[idx] + s
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

SyntaxError: can't assign to conditional expression
Run Code Online (Sandbox Code Playgroud)

我不太明白.

您的建议将不胜感激.

python for-loop if-statement list-comprehension sum

2
推荐指数
1
解决办法
3204
查看次数

R中类的setMethod

我正在尝试使用通用方法“摘要”为“主题”类创建一个方法。但是,我收到一条错误消息。你能帮我理解我做错了什么以及如何纠正吗?谢谢你。

      setGeneric("summary")

      setMethod("summary",
      c(x = "subject"),
      function(x){"This is summary for subject class"})
Run Code Online (Sandbox Code Playgroud)

错误消息如下:

      Error in match.call(definition, call, expand.dots, envir) : 
      unused argument (x = c("subject", ""))
Run Code Online (Sandbox Code Playgroud)

我已经使用 setMethod 使用通用方法“print”为类“subject”创建了一个方法,如下所示:

      setMethod("print",
            c(x = "subject"),
            function(x){
                 if (length(x$id) > 0){
                       paste0("Subject ID: ", unique(x$id))}
                 else {"NULL"}
             })
Run Code Online (Sandbox Code Playgroud)

上述代码执行没有错误。我不明白这两种情况有什么区别。

methods r class

0
推荐指数
1
解决办法
1450
查看次数

标签 统计

python ×3

pandas ×2

class ×1

except ×1

for-loop ×1

if-statement ×1

list-comprehension ×1

methods ×1

nan ×1

r ×1

sql ×1

sum ×1