python - 如何根据列值填充所有值?
问题描述
想象一下,您有以下 df:
dffinalselection
description#1 description#2 lacheck taxrate#1
0 NaN NaN 5 Res
1 138.81 105.91 67 Rofus
12 74.16 4.34 55 Rennie
现在我想根据 lacheck / taxrate#1 的组合值填写 description#1 和 #2。这需要迭代和可扩展地完成,因为描述可能长达十个。
于是编造了以下代码。
dffinalselection['LineDescription'] = dffinalselection['lacheck'] + "-" + dffinalselection['taxrate#1']
filldescparty = dffinalselection.filter(like='description')
df[filldescparty].fillna(dffinalselection['LineDescription'], inplace = True)
dffinalselection.update(filldescparty)
但是,收到以下错误:
ValueError: Boolean array expected for the condition, not object
所需的输出:
description#1 description#2 lacheck taxrate#1
0 5 -Res 5 -Res 5 Res
1 67 - Res 67 - Res 67 Rofus
12 55 - Rennie 55 - Rennie 55 Rennie
解决方案
我们能试试assign
line = df['lacheck'].astype(str) + '-' + df['taxrate#1']
cols = df.filter(like='description')
df.assign(**dict.fromkeys(cols, line))
description#1 description#2 lacheck taxrate#1
0 5-Res 5-Res 5 Res
1 67-Rofus 67-Rofus 67 Rofus
12 55-Rennie 55-Rennie 55 Rennie
推荐阅读
- perl - \x{..} 和 \N{U+..} 之间有区别吗
- scala - 如何组合两个对象元素
- ios - 使用来自 ObjC 的 swift 对象的内存泄漏
- post - 连接期间更改用户代理
- mysql - 使用非主键表进行查询+在中间添加一行?
- django - 类型错误:autodiscover_tasks() 缺少 1 个必需的位置参数:“包”。芹菜
- c++ - 写入的字节数为 0,尽管 getOverlappedResult 返回 1
- swift - Swift - 如何在泛型函数中获取数组元素的类型
- python - 按 xarray 中的值过滤文件列表,其中文件名包含填充数字
- c++ - 如何使用 GCC 9 将 `std::filesystem::file_time_type` 转换为字符串