【发布时间】:2019-12-21 18:38:04
【问题描述】:
我需要一些关于熊猫问题的提示。
我有以下 DataFrame,df1,其中包含我需要保留在输出数据框中的日期名称:
name date column_1 column_11
Anne 2018-01-01 some info1 some info11
John 2018-01-01 some info1 some info11
Mark 2018-02-01 some info1 some info11
Ethan 2018-03-01 some info1 some info11
Anne 2018-04-01 some info1 some info11
Ethan 2018-04-01 some info1 some info11
我有另一个 DataFrame,df2,它包含我的数据样本中的所有名称和日期:
name date column_2 column_22
Bob 2018-01-01 some info2 some info22
Bob 2018-01-01 some info2 some info22
Anne 2018-01-01 some info2 some info22
John 2018-01-01 some info2 some info22
Mark 2018-02-01 some info2 some info22
Mark 2018-02-01 some info2 some info22
Ethan 2018-03-01 some info2 some info22
Anne 2018-04-01 some info2 some info22
Anne 2018-04-01 some info2 some info22
Ethan 2018-04-01 some info2 some info22
Carl 2018-01-01 some info2 some info22
Joe 2018-01-01 some info2 some info22
而且,作为输出,我需要一个像 df1 这样的 DataFrame,但所有列都在 df2 中。
请注意,df1 和 df2 除了我显示的列之外还有其他列,因此它们具有不同的信息。问题是,我想要 df2 中的列,但只需要 df1 中显示的日期中的名称。
示例输出为:
name date column_2 column_22
Anne 2018-01-01 some info2 some info22
John 2018-01-01 some info2 some info22
Mark 2018-02-01 some info2 some info22
Mark 2018-02-01 some info2 some info22
Ethan 2018-03-01 some info2 some info22
Anne 2018-04-01 some info2 some info22
Anne 2018-04-01 some info2 some info22
Ethan 2018-04-01 some info2 some info22
注意:
在做:
df = df2.merge(df1)
没用
注意 2:
df1 包含来自 df2 的聚合和过滤数据,这就是为什么 df1 中的行数少于 df2 中的行数。我只想在 df2 中保留那些在 df1 中包含名称和日期的行。
这些解决方案都不起作用,所以我认为这种解释可能有助于获得正确的分析器。
【问题讨论】:
-
你试过
df = df1.merge(df2, on=['name', 'date'] , how='left')吗? -
这行不通。
-
能否提供
d1.dtypes和d2.dtypes。我怀疑您的日期列在两个 dfs 中的存储方式不同。