[英]How to apply a pandas function based on the value of another column?
I have a pandas dataframe with two columns, one with some string values and another one with empty dicts: 我有一个两列的pandas数据框,一列有一些字符串值,另一列有空dict:
ColA ColB
True {}
False {}
True {}
True {}
False {}
False {}
True {}
I have a function that updates a dict with some other values: 我有一个函数,可以使用其他一些值更新字典:
def update_dict(a):
return a.update({"VAL":["yes"]})
How can I apply the above function to all the ColB cells that have "False" strings next to them in their ColA?: 如何将上述功能应用于在ColA旁边带有“假”字符串的所有ColB单元?
ColA ColB
True {}
False {"VAL":["yes"]}
True {}
True {}
False {"VAL":["yes"]}
False {"VAL":["yes"]}
True {}
I know that in pandas you can use the apply function or applymap. 我知道在熊猫中您可以使用apply函数或applymap。 However, I do not know how can I do it based on a previous column value.
但是,我不知道如何基于上一列的值来执行此操作。
It is possible but working with dict
in values of columns is not recommended, because lost all vectorized functions: 有可能,但是不建议在列的值中使用
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 {}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.