我有一个带有两个列的熊猫dataframe,一个列有一些字符串值,另一个列有空数据:
ColA ColB
True {}
False {}
True {}
True {}
False {}
False {}
True {}
我有一个函数,它用其他值更新dict:
def update_dict(a):
return a.update({"VAL":["yes"]})
如何将上述函数应用于ColB单元格,这些单元格在其ColA中的旁边有“假”字符串?:
ColA ColB
True {}
False {"VAL":["yes"]}
True {}
True {}
False {"VAL":["yes"]}
False {"VAL":["yes"]}
True {}
我知道在熊猫中你可以使用应用功能或应用程序。但是,我不知道如何根据前面的列值来实现它。
发布于 2018-10-25 03:16:26
这是可能的,但不建议在列的值中使用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 {}
https://stackoverflow.com/questions/52987904
复制相似问题