首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将一个dataframe列中的NaNs替换为另一个dataframe列python

将一个dataframe列中的NaNs替换为另一个dataframe列python
EN

Stack Overflow用户
提问于 2022-03-16 09:01:36
回答 1查看 52关注 0票数 0

我有两个数据文件:df_sessiondf_session_focusdf_session['user_id', 'group', 'start_time', 'end_time']列;df_session_focus['user_id', 'group', 'focus_leave', 'focus_enter']列。

df_session

user_id群start_time end_time

13ai0控制2020-01-21 20:39:10+00:00 2020-01-21 21:00:02+00:00

13ai0控制2020-01-22 13:42:31+00:00 2020-01-22 14:12:31+00:00

13ai0控制2020-01-22 14:13:27+00:00 2020-01-22 14:43:27+00:00

13ai0控制2020-01-23 00:13:30+00:00 2020-01-23 00:43:30+00:00

我想用来自focus_enter的值替换end_time中的NaNs。

我尝试了现有的解决方案,但对我没有任何作用:

1.

代码语言:javascript
运行
复制
d2 = df_session.set_index(cols).end_time.dropna()
df_session_focus.fillna(df_session_focus.focus_enter.join(d2, on=cols))

错误:AttributeError: 'Series' object has no attribute 'join'

2.

代码语言:javascript
运行
复制
mapping = df_session.set_index("session_id")
df_session_focus["focus_enter"] = df_session_focus.focus_enter.map(d2['end_time'])

错误:KeyError: 'end_time'

3.

代码语言:javascript
运行
复制
df_session_focus.merge(df_session[["session_id", 'end_time']],left_on="end_time", right_on="end_time",  how="left")

错误:KeyError: 'end_time'

EN

回答 1

Stack Overflow用户

发布于 2022-04-14 06:15:24

这段代码适用于我:

代码语言:javascript
运行
复制
df = pd.merge(left=df_session_focus, right=df_session, 
              on=['user_id', 'session_id'], how='left')

df['focus_enter'] = df['focus_enter'].fillna(df['end_time'])

finalresult = df.drop(['group_y', 'Unnamed: 0_x', 'Unnamed: 0_y'], axis=1)
finalresult.rename(columns={'group_x':'group'}, inplace=True)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71494221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档