外部在pandas中合并两个数据帧

Fra*_*urt 8 python merge outer-join dataframe pandas

如何在pandas中合并两个数据框?

例如,假设我们有这两个数据框:

import pandas as pd

s1 = pd.DataFrame({
    'time':[1234567000,1234567005,1234567009],
    'X1':[96.32,96.01,96.05]
},columns=['time','X1'])  # to keep columns order

s2 = pd.DataFrame({
    'time':[1234567001,1234567005],
    'X2':[23.88,23.96]
},columns=['time','X2'])  # to keep columns order
Run Code Online (Sandbox Code Playgroud)

它们可以与pandas.DataFrame.merge(s3 = pd.merge(s1,s2,how='outer'))或 pandas.merge(s3=s1.merge(s2,how='outer'))合并,但它不适用.相反,我希望合并的数据框替换内存中的s1.

Ray*_*ama 7

由于pandas.merge中没有inplace参数,所以我认为您能做的最多是:

s1 = pd.merge(s1,s2,how='outer')
Run Code Online (Sandbox Code Playgroud)

除此之外,我认为还有很多事情要做。
希望这对您有所帮助。

  • 该解决方案不执行“就地”替换。它用新的引用替换了最初的 s1 引用。因此,它的行为不一样,特别是如果您将 s1 数据帧传递给函数并在函数内执行合并...... (3认同)
  • 确实遗憾的是没有就地合并或连接(即使有索引必须匹配的限制)。 (2认同)
  • 确切地说,@jeromerg,这是因为,正如 Rayhane 本人和整个 pandas 库所指出的那样,没有办法通过 pandas 执行就地替换。从简短的答案文本本身来看,这一点已经很清楚了...... (2认同)