【问题标题】:Trying to conditionally add a column to a pandas dataframe from another related dataframe尝试从另一个相关数据框有条件地向熊猫数据框添加一列
【发布时间】:2021-04-19 16:04:51
【问题描述】:

我是使用 pandas 的新手,我尝试寻找解决这个(似乎很简单)问题的方法。我正在尝试有条件地从另一个数据帧向一个数据帧的某些行添加一列。这是我的数据:

import pandas as pd

df_1 = pd.DataFrame(
    {
        'Acme ID':["A-123","A-345","A-678"],
        'Active':['Y','N','Y'],
        'Other Col':["some","other","data"]})  

df_2 = pd.DataFrame(
    {
        'Acme ID':["A-123","A-678"],
        'Active Date':['2020-05-15','2020-07-20']})  

我正在尝试将 df_2 中的活动日期添加到 df_1 中活动标志为“Y”的所有行。 df_2 中的项目可以使用 Acme ID 列连接到 df_1 中的项目。这是我期望生成的数据框的样子:

df_final = pd.DataFrame(
    {
        'Acme ID':["A-123","A-345","A-678"],
        'Active':['Y','N','Y'],
        'Other Col':["some","other","data"],
        'Active Date':['2020-05-15',pd.NaT,'2020-07-20']})

我尝试了许多不同的方法,比如只遍历 df_1(但我不断收到 SettingWithCopyWarning),我认为有更好的方法。我也尝试过使用其他一些操作,如assign,但他们似乎不喜欢数据帧的长度不同。任何帮助将不胜感激。

【问题讨论】:

  • df_1.merge(df_2, on='Acme ID', how='left')?

标签: python pandas dataframe


【解决方案1】:

感谢@It_is_Chrisdf_1.merge(df_2, on='Acme ID', how='left') 正是我想要的。我以为我尝试过类似的方法,但猜不是。

【讨论】:

    猜你喜欢
    • 2018-04-15
    • 2021-06-11
    • 2022-01-23
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2021-06-25
    • 1970-01-01
    相关资源
    最近更新 更多