我有一个熊猫数据框,其中有两列,一列有一些字符串值,另一列有空字典:
ColA ColB
True {}
False {}
True {}
True {}
False {}
False {}
True {}
我有一个函数,可以用其他一些值更新字典:
def update_dict(a):
return a.update({"VAL":["yes"]})
如何将上述功能应用于在ColA旁边带有“假”字符串的所有ColB单元格?:
ColA ColB
True {}
False {"VAL":["yes"]}
True {}
True {}
False {"VAL":["yes"]}
False {"VAL":["yes"]}
True {}
我知道在熊猫中您可以使用apply函数或applymap。但是,我不知道如何根据先前的列值来完成此操作。
答案 0 :(得分:0)
有可能,但是不建议在列的值中使用dict
,因为丢失了所有矢量化功能:
def update_dict(a):
a.update({"VAL":["yes"]})
return a
df['ColB'] = [update_dict(j) if i == 'False' else j for i, j in zip(df['ColA'], df['ColB'])]
print (df)
ColA ColB
0 True {}
1 False {'VAL': ['yes']}
2 True {}
3 True {}
4 False {'VAL': ['yes']}
5 False {'VAL': ['yes']}
6 True {}