[英]Python Pandas replace NaN in one column with value from a row below of another column
[英]Python Pandas replace NaN with data from another row
我有两个数据框。 Dataframe A包含课程信息,包括所需教科书的ISBN号:
课程简称 | 课程编号 | 节号 | 课程名 | 课程导师 | 课程座位 | 国际标准书号 |
---|---|---|---|---|---|---|
ACCT | 205 | 101 | 介绍财务会计 | 30 | 9780357617977 | |
ACCT | 205 | 102 | 介绍财务会计 | 授予 | 30 | 9780357617977 |
ACCT | 205 | 901 | 介绍财务会计 | 授予 | 35 | 9780357617977 |
Dataframe B 包含图书购买信息,还包含 ISBN 号:
标题 | 书号 | 捆绑 | 版 | US_List |
---|---|---|---|---|
高效能青少年的 7 个习惯:青少年成功的终极指南。 | 9.78148E+12 | 纸 | 17.99 美元 | |
高效能青少年的 7 个习惯:青少年成功的终极指南。 | 9.78148E+12 | 电子书 | ||
ADOBE AUDITION CC:书中的课堂:来自 ADOBE 的官方培训手册。 | 9.78014E+12 | 纸 | 第二版。 | 59.99 美元 |
我能够合并这两个数据框,以便课程信息与图书购买信息一起可用。 但是,Dataframe B 包含同一本书的许多不同列表。 我想将课程信息带到 ISBN 不同的匹配标题中。 因此在下面的示例中,即使 ISBN 不同,课程信息也会出现在两个版本的标题中:
课程简称 | 课程编号 | 节号 | 课程名 | 课程导师 | 课程座位 | 国际标准书号 | 标题 |
---|---|---|---|---|---|---|---|
CTEC | 107 | 825.0 | IT 成功的技能 | 洛特 | 20.0 | 9781476764665 | 高效能青少年的 7 个习惯:青少年成功的终极指南。 |
钠 | 钠 | 钠 | 钠 | 钠 | 钠 | 钠 | 高效能青少年的 7 个习惯:青少年成功的终极指南。 |
最好的方法是什么? 需要填写课程信息的行并不总是位于与包含课程信息的行相关的相同位置,因此我认为 ffill 或 bfill 不起作用。
按ISBN No
排序会将空值推到底部,然后您可以按标题分组并填充数据。
df.sort_values(by='ISBN No').groupby('Title').ffill()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.