熊猫:将具有相同列名但计算方式不同的数据框组合

时间:2019-07-23 20:17:00

标签: python pandas

对于活跃和不活跃的客户,我有两个数据框。活动数据帧和非活动数据帧具有相同的列,但是experience_duration的计算方式不同。

有效的示例数据:

ID| join_date | experience_duration| status

 1| 2013-12-05|               4.321| active

 2| 2013-12-05|               4.321| active

样本数据无效:

ID| join_date | experience_duration| status

 5| 2013-12-05|                  14| inactive

 9| 2013-12-05|                  52| inactive

我想将此合并到具有各种客户属性的主客户数据框中。看起来应该像这样:

ID| join_date  | gender| experience_duration| status

 1| 2013-12-05 |      F|               4.321| active

 2| 2013-12-05 |      M|               4.321| active

 5| 2013-12-05 |      F|                  14| inactive

 9| 2013-12-05 |      F|                  52| inactive

代码:

df_customer = pd.merge(left=df_customer, right=df_active, on=['id'], 
how='left')
df_customer = pd.merge(left=df_customer, right=df_inactive, on=['id'], 
how='left')

问题在于,我在经历持续时间内最终得到了重复的列。我想要一个根据客户的状态提供适当值的体验持续时间列。

1 个答案:

答案 0 :(得分:1)

我想你想要

final_df = pd.concat([activeDf, inactiveDf])

您也可以这样做:

final_df = activeDf.append(inactiveDf)


在此处阅读更多信息:https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html