Python:将函数应用于 pandas 数据帧中的某些 elements/cells

Python: Apply function to certain elements/cells in pandas dataframe

我在 Pandas 中有以下 table。

+--------+--------+--------+-----+
|   A    |   B    |   C    |  D  |
+--------+--------+--------+-----+
| foo    | b'bar0 | b'foo0 | 253 |
| b'bar0 | bar    | blah   | 485 |
+--------+--------+--------+-----+

我想对以 b' 开头的单元格中的每个元素应用一个函数。 函数是:

def elementdecode(data,password):
    aa=row[2:-1]
    bb=aa.encode()
    cc = bb.decode('unicode-escape').encode('ISO-8859-1')
    return (decode(cc, password).decode())

背景:我有一个csv文件,里面有正常值和加密值,我想只对未加密的元素应用解密方法。我的计划是将 csv 读入 pandas 并仅在加密的单元格上应用解密函数(例如以 'b 开头)。执行加密后,我将数据导出回新的 csv。我没有使用循环,而是考虑使用 applymap,但我不知道如何仅在特定元素上使用它。

谢谢

你试过了吗?

def elementdecode(data,password):
    #if the first condition if not met, the second is not evaluated
    if (type(x) == str) and ("\'b" in x):
        aa=row[2:-1]
        bb=aa.encode()
        cc = bb.decode('unicode-escape').encode('ISO-8859-1')
        return (decode(cc, password).decode())
    else:
        return x

df.applymap(lambda x: elementdecode(x,password))