标签: merge

Oracle:如何UPSERT(更新或插入表?)

UPSERT操作更新或在表中插入一行,具体取决于表是否已有一行与数据匹配:

if table t has a row exists that has key X:
    update t set mystuff... where mykey=X
else
    insert into t mystuff...
Run Code Online (Sandbox Code Playgroud)

由于Oracle没有特定的UPSERT语句,最好的方法是什么?

sql oracle merge upsert

277
推荐指数
9
解决办法
39万
查看次数

熊猫合并101

  • 如何用pandas 执行(LEFT| RIGHT| FULL)(INNER| OUTER)连接?
  • 合并后如何为缺失的行添加NaN?
  • 合并后如何摆脱NaN?
  • 我可以合并索引吗?
  • 如何合并多个DataFrame?
  • mergejoinconcatupdate?谁?什么?为什么?!

... 和更多.我已经看到了这些反复出现的问题,询问了pandas合并功能的各个方面.今天关于合并及其各种用例的大部分信息在几十个措辞严厉,不可搜索的帖子中都是分散的.这里的目的是为后代整理一些更重要的观点.

这个QnA应该是关于常见熊猫习语的一系列有用的用户指南的下一部分(参见关于转动的这篇文章,以及关于连接的这篇文章,我将在稍后介绍).

请注意,这篇文章并不是文档的替代品,所以请阅读它!一些例子来自那里.

python merge join pandas

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

什么是最好的三向合并工具?

Subversion,Git,Mercurial和其他人支持三方合并(结合我的,他们的和"基础"修订版)并支持解决冲突的图形工具.

你用什么工具?Windows,Mac OS X,Linux,免费或商业,您可以命名.

以下是我用过或听过的一些内容,只是为了开始对话:

(我知道这有点像最好的差异工具,但它的不同之处在于我明确专注于三向合并工具; 例如,WinMerge不在列表中.)

version-control merge dvcs

258
推荐指数
12
解决办法
18万
查看次数

尽管存在差异,Git合并报告"已经是最新的"

我有一个带有2个分支的git存储库:master和test.

主分支和测试分支之间存在差异.

两个分支都承诺所有更改.

如果我做:

git checkout master
git diff test

出现一个充满变化的屏幕,显示出差异.我想合并测试分支中的更改,所以:

git merge test

但得到消息"已经是最新的"

但是,检查每个不同分支下的文件清楚地显示了差异.

这里有什么问题,如何解决?

git merge

257
推荐指数
10
解决办法
17万
查看次数

我可以默认在git中关闭快进吗?

我真的不能没有想过的时候,我会用git merge,而不是git rebase希望有一个承诺现身.有没有办法配置git默认快速关闭?事实上,有一个--ff选项似乎意味着有一种方法,但我似乎无法在文档中找到它.

git merge branch rebase fast-forward

257
推荐指数
3
解决办法
7万
查看次数

以下未跟踪的工作树文件将被合并覆盖,但我不在乎

在我的分支上,我在.gitignore中有一些文件

在不同的分支上,这些文件不是.

我想将不同的分支合并到我的,我不在乎这些文件是否不再被忽略.

不幸的是我明白了:

合并将覆盖以下未跟踪的工作树文件

如何修改我的pull命令来覆盖这些文件,而不必自己查找,移动或删除这些文件?

git merge git-merge git-fetch

254
推荐指数
16
解决办法
42万
查看次数

如何正确关闭Mercurial中的功能分支?

我已经完成了一个功能分支feature-x.我想将结果合并回default分支并关闭feature-x,以便在输出中删除它hg branches.

我想出了以下场景,但它有一些问题:

$ hg up default
$ hg merge feature-x
$ hg ci -m merge
$ hg up feature-x
$ hg ci -m 'Closed branch feature-x' --close-branch
Run Code Online (Sandbox Code Playgroud)

所以feature-x分支(更改40- 41)已关闭,但有一个新头,即结束分支变更集44,hg heads每次都会列出:

$ hg log ...
o  44 Closed branch feature-x
|
| @  43 merge
|/|
| o  42 Changeset C
| |
o |  41 Changeset 2
| |
o …
Run Code Online (Sandbox Code Playgroud)

merge mercurial branch hg-merge

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

同时合并列表中的多个data.frames

我有一个我要合并的许多data.frames的列表.这里的问题是每个data.frame在行数和列数方面都不同,但它们都共享关键变量(我已经调用过"var1","var2"在下面的代码中).如果data.frames在列方面是相同的,我只能rbind,plyr的rbind.fill可以完成这项工作,但这些数据并非如此.

因为该merge命令仅适用于2个data.frames,所以我转向Internet寻求创意.我从这里得到了这个,它在R 2.7.2中完美运行,这是我当时所拥有的:

merge.rec <- function(.list, ...){
    if(length(.list)==1) return(.list[[1]])
    Recall(c(list(merge(.list[[1]], .list[[2]], ...)), .list[-(1:2)]), ...)
}
Run Code Online (Sandbox Code Playgroud)

我会像这样调用函数:

df <- merge.rec(my.list, by.x = c("var1", "var2"), 
                by.y = c("var1", "var2"), all = T, suffixes=c("", ""))
Run Code Online (Sandbox Code Playgroud)

但是在2.7.2之后的任何R版本中,包括2.11和2.12,此代码失败并出现以下错误:

Error in match.names(clabs, names(xi)) : 
  names do not match previous names
Run Code Online (Sandbox Code Playgroud)

(很明显,我在其他地方看到了其他对此错误的引用而没有解决方案).

有什么方法可以解决这个问题吗?

merge r list dataframe r-faq

233
推荐指数
6
解决办法
15万
查看次数

如何丢弃远程更改并将文件标记为"已解决"?

我有一些本地文件,我从远程分支拉,有冲突.我知道我想保留本地更改并忽略导致冲突的远程更改.是否有一个命令可以用来实际上说"将所有冲突标记为已解决,使用本地"?

git merge conflict git-merge-conflict

195
推荐指数
2
解决办法
10万
查看次数

将pandas函数应用于列以创建多个新列?

如何在熊猫中做到这一点:

extract_text_features在单个文本列上有一个函数,返回多个输出列.具体来说,该函数返回6个值.

该函数有效,但似乎没有任何正确的返回类型(pandas DataFrame/numpy数组/ Python列表),以便输出可以正确分配 df.ix[: ,10:16] = df.textcol.map(extract_text_features)

所以我认为我需要回到迭代df.iterrows(),按照这个

更新:迭代df.iterrows()速度至少慢20倍,所以我投降并将函数拆分为六个不同的.map(lambda ...)调用.

更新2:这个问题是在v0.11.0左右回答的.因此,大部分问题和答案都不太相关.

python merge return-type multiple-columns pandas

181
推荐指数
11
解决办法
12万
查看次数