【问题标题】:SQL Update case when in PythonPython中的SQL更新案例
【发布时间】:2021-08-17 08:42:38
【问题描述】:

我想在 pandas 中重现以下 SQL 代码。有人有建议吗?

UPDATE [Table] SET [Column1] =
                  CASE WHEN [Column2] IS NULL
                  AND         [Column3] IS NULL
                  THEN        [Column3]
                       WHEN [Column2] IS NOT NULL
                    AND       [Column3] IS NULL
                       THEN [Column2]
                       WHEN [Column2] IS NULL
                    AND       [Column3] IS NOT NULL
                         THEN [Column3]
                       WHEN [Column2] IS NOT NULL
                    AND       [Column3] IS NOT NULL
                         THEN [Column3]
                       ELSE [Column3]

结束;

【问题讨论】:

  • 您应该创建一个具有预期输出的可重现示例,而不是仅仅共享一个代码 sn-p。看看np.select 看看是否有帮助

标签: python sql pandas


【解决方案1】:

很高兴回答您的问题。我建议您更改代码如下:

# Set a default value.
df['Column1'] = df['Column3']
# Set Column2 only when Column2 is not Null and Column3 is Null.
df['Column1'][(df['Column2'] != None) & (df['Column3'] == None)] = df['Column2']
# Other case is set Column3 in default.

希望能从我的建议中得到任何帮助。 谢谢。

【讨论】:

  • 谢谢。但是,我打算只创建第 1 列,其中根据条件插入第 2 列或第 3 列的值(例如,取决于第 2 列和第 3 列中的值是否为 null/nan )
  • 您好,请问您找到解决这个问题的方法了吗?
  • 野蛮方式:我合并列,添加分隔符并将它们分成两半..
猜你喜欢
  • 2021-11-10
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-07
  • 1970-01-01
相关资源
最近更新 更多