[英]Append asterisk to existing dataframe value, based on mask with another dataframe in Python
I have two dataframes:我有两个数据框:
import pandas as pd
data1 = {1: [1,2,3], 2: [1,2,3]}
df1 = pd.DataFrame(data1)
data2 = {1: [49,60,12], 2: [14,70,38]}
df2 = pd.DataFrame(data2)
Where a value is >= 30 but <50 in df2, I want to append an * to the respective existing value in df1.如果 df2 中的值 >= 30 但 <50,我想 append 和 df1 中相应的现有值。 I tried:我试过了:
df1 = df1.mask((df2 >= 30) & (df2 < 50), [df1 + '*'])
But this gives an error.但这给出了一个错误。
Thanks in advance.提前致谢。
You are close, remove []
and convert values to strings for add *
:您已关闭,删除[]
并将值转换为字符串以添加*
:
df = df1.mask((df2 >= 30) & (df2 < 50), df1.astype(str) + '*')
print (df)
1 2
0 1* 1
1 2 2
2 3 3*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.