欲望是输入DataFrame
减少到name
和color
列。如果updated_name|color
有数据,请使用它。如果是''
(Nan
在真实数据集中),则使用updated_name|color
列中输入的值(如果存在),如果不存在,则使用original_name|color
列中的值。
在真实的数据集得到了大约远至DataFrame
下面使用:
mask = df['updated_name'].notnull() | df['updated_color'].notnull()
字符串
我被困在下一步。
一个例子DataFrame
价值一千字,最小可行性如下:
输入DataFrame
:
| 原名|原色|更新名称|更新颜色| updated_color |
| --|--|--|--| ------------ |
| 快乐熊|红色|绿色熊|||
| 快乐熊|红色||||
| 快乐熊|红色||||
| 坏脾气熊|蓝色||||
| 坏脾气熊|蓝色||紫色| Purple |
| 坏脾气熊|蓝色||||
| 困熊|黄色|能量熊|||
| 困熊|黄色||||
| 困熊|黄色||亮黄色| Bright Yellow |
预期结果:
| 姓名|颜色| color |
| --|--| ------------ |
| 绿色熊|红色| Red |
| 坏脾气熊|紫色| Purple |
| 能量熊|亮黄色| Bright Yellow |
2条答案
按热度按时间vaj7vani1#
构造一个dataframe,使
updated_name|color
列优先进行布尔检查:个字符
5lhxktic2#
这是可行的,虽然我觉得它可以更简单:对于每个组中的每个字段,获取第一个非空“更新”值,否则获取第一个非空“原始”值。
个字符