我想对具有日期时间索引的数据框执行联接/合并/追加操作。
假设我有df1
,我想添加df2
它。
df2
可以具有更少或更多的列,并且索引重叠。对于索引匹配的所有行,如果df2
具有与相同的列df1
,我希望使用的值df1
覆盖的值df2
。
如何获得理想的结果?
如何:df2.combine_first(df1)
?
In [33]: df2
Out[33]:
A B C D
2000-01-03 0.638998 1.277361 0.193649 0.345063
2000-01-04 -0.816756 -1.711666 -1.155077 -0.678726
2000-01-05 0.435507 -0.025162 -1.112890 0.324111
2000-01-06 -0.210756 -1.027164 0.036664 0.884715
2000-01-07 -0.821631 -0.700394 -0.706505 1.193341
2000-01-10 1.015447 -0.909930 0.027548 0.258471
2000-01-11 -0.497239 -0.979071 -0.461560 0.447598
In [34]: df1
Out[34]:
A B C
2000-01-03 2.288863 0.188175 -0.040928
2000-01-04 0.159107 -0.666861 -0.551628
2000-01-05 -0.356838 -0.231036 -1.211446
2000-01-06 -0.866475 1.113018 -0.001483
2000-01-07 0.303269 0.021034 0.471715
2000-01-10 1.149815 0.686696 -1.230991
2000-01-11 -1.296118 -0.172950 -0.603887
2000-01-12 -1.034574 -0.523238 0.626968
2000-01-13 -0.193280 1.857499 -0.046383
2000-01-14 -1.043492 -0.820525 0.868685
In [35]: df2.comb
df2.combine df2.combineAdd df2.combine_first df2.combineMult
In [35]: df2.combine_first(df1)
Out[35]:
A B C D
2000-01-03 0.638998 1.277361 0.193649 0.345063
2000-01-04 -0.816756 -1.711666 -1.155077 -0.678726
2000-01-05 0.435507 -0.025162 -1.112890 0.324111
2000-01-06 -0.210756 -1.027164 0.036664 0.884715
2000-01-07 -0.821631 -0.700394 -0.706505 1.193341
2000-01-10 1.015447 -0.909930 0.027548 0.258471
2000-01-11 -0.497239 -0.979071 -0.461560 0.447598
2000-01-12 -1.034574 -0.523238 0.626968 NaN
2000-01-13 -0.193280 1.857499 -0.046383 NaN
2000-01-14 -1.043492 -0.820525 0.868685 NaN
请注意,它df1
从不与重叠的索引中获取值df2
。如果这不能完全满足您的要求,我将愿意改进此功能/为其添加选项。
问题内容: 我在加入熊猫方面遇到问题,并且试图找出问题所在。假设我有一个x: 我应该能够通过简单的连接命令在y = x上将y与索引上的y联接,除了同名具有+2。 我希望决赛对双方都有1941个非值。我也尝试过合并,但是我有同样的问题。 我以为正确的答案是pandas.concat([x,y]),但这也不符合我的预期。 编辑:如果您在加入方面遇到问题,请阅读下面的韦斯答案。我有一个重复的时间戳。 问
问题内容: 我有一个熊猫,其中有多个列: 其中和是包含相同数据但名称不同的列。有没有一种方法可以将组成行的行移动到理想状态,同时保持名称? 最后,DataFrame应该显示为: 那就是构成bar的NaN值被替换为的值。 问题答案: 尝试这个: 如果您希望该数据成为新列,只需将结果分配给即可。
问题内容: 如何在两个数据框中找出同名列之间的区别?我的意思是,我有一个名为X的数据框A和一个名为X的数据框B,如果这样做的话,我将获得A和B的通用X值,但是我如何获得“非通用”的X值? 问题答案: 如果将合并类型更改为,这将添加一列以告诉您这些值是否仅是左/左右/右: 然后,您可以在col上过滤结果合并的df : 您也可以使用和否定掩码以查找不在B中的值:
问题内容: 我正在尝试在date列上合并两个数据框(都尝试作为type或,但是无法提供所需的合并输出: 问题答案: 我认为您需要首先转换两列,因为需要相同的内容:
问题内容: 我正在尝试使用两列来连接两个熊猫数据框: 但出现以下错误: 任何想法应该是正确的方法吗?谢谢! 问题答案: 尝试这个 https://pandas.pydata.org/pandas- docs/stable/reference/api/pandas.DataFrame.merge.html left_on:要在左侧DataFrame中加入的标签或列表或类似数组的字段名称。可以是Dat
问题内容: 我有一个数据框df,有两列,我想按一列分组并加入属于同一组的列表,例如: 处理后: 我想保留所有重复项。我有以下问题: 数据框的dtype是对象。convert_objects()不会自动将column_b转换为列表。我怎样才能做到这一点? df.groupby(…)。apply(lambda x:…)中的函数适用于什么?x的形式是什么?清单? 我主要问题的解决方案? 提前致谢。 问题