有了这个数据框
| 一个 | 乙 | C |
|---|---|---|
| '数据' | 2 | 3 |
| '刀塔' | 3 | 4 |
我想根据 A 列中的值修改 B 列和 C 列中的值。目前我可以使用类似
df['B'] = df['A'].map(lambda x: cache[x]['mapVal'])
df['C'] = df['A'].map(lambda x: cache[x]['diffMapVal'])
在这种情况下,B 列和 C 列的值依赖于 A 列的值。它们还需要一个基于它们自己的列的唯一键(例如,B 有自己的键,C 有自己的键)。
为了在混合中加入另一个转折,如果foo 是谓词并且 val 给出我们所在行的列 B 的值,则在某些条件下不应该修改B 和 C。foo(val(B)) == True
所以基本上任务是
if foo(B) and foo(C) then continue
set value of B equal to cache[val(A)][keyOfB]
set value of C equal to cache[val(A)][keyOfC]
在看了几个问题之后,这个问题似乎很重要。但是我不太清楚如何访问数据框中 A 的值,因为它正在被 where 语句过滤。
谢谢