【发布时间】:2018-07-17 15:39:32
【问题描述】:
prev_staff DataFrame 包含电子邮件和真/假标志。我想用另一个 DataFrame 更新这个标志,其中包含一个电子邮件子列表和一个全部设置为 true 的标志。 我正在寻找一种更有效的方法来更新列值,而不必从结果合并中删除和重命名列。 原始列是可午餐的,但合并生成了一个可午餐的_x 和 y,我想避免必须管理它。
new_staff = pd.merge(prev_staff,new_staff_emails, on='email',how='left')
new_staff['lunchable_x'] = new_staff['lunchable_y']
new_staff = new_staff.drop(columns=['lunchable_y'])
new_staff = new_staff.rename(columns={'lunchable_x': 'lunchable'})
new_staff['lunchable'].fillna('false', inplace=True)
new_staff.to_csv(path + 'staff.csv')
new_staff 专栏
Index(['user_id', 'name', 'email', 'start_date', 'table', 'team', 'specialty',
'lunchable', 'previous_lunches'],
dtype='object')
new_staff_emails 列
Index(['email', 'lunchable'], dtype='object')
prev_staff 专栏
Index(['user_id', 'name', 'email', 'start_date', 'table', 'team', 'specialty',
'lunchable', 'previous_lunches'],
dtype='object')
【问题讨论】:
-
能否包含 prev_staff 和 new_staff_emails 的标题?
-
如果电子邮件在
new_staff中,您可以将prev_staff中的lunchable的值设置为True,而不是在这里合并? -
除了合并之外,您建议如何执行此操作?
-
我不清楚你在问什么。你能提供一个minimal reproducible example吗?
-
那么如果用 new_staff 的内容更新以前员工的电子邮件并保留除合并生成的副本之外的所有列,您想要什么,对吗?