【发布时间】: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')?