根据另一列更改熊猫列

iraciv94

我有一个熊猫DataFrame,其中包含如下所示:

A         A_type
"Hello"   String
15        Integer
"Hi"      String
56.78     Float

我想创建第三列,如果A具有名为“ String”的相应“ A_type”元素,则报告与A相同的值,否则打印“空白”。该列如下所示:

B
"Hello"
"blank"
"Hi"
"blank"

我尝试做类似的事情:

df['B'] = df['A']
for j in df['A_type']:
    for i in df['B']:
            if j == "String":
                i = i
            else:
                i = "blank"

有没有更有效的方法来解决此类问题,可以帮助我避免所有这些for循环?

在此先多谢

耶斯列尔

在颠倒状态下使用Series.whereSeries.mask,或numpy.where

df['B'] = df['A'].where(df['A_type'] == "String", 'blank')
#df['B'] = df['A'].mask(df['A_type'] != "String", 'blank')
#alternative
#df['B'] = np.where(df['A_type'] == "String", df['A'], 'blank')
print (df)
       A   A_type      B
0  Hello   String  Hello
1     15  Integer  blank
2     Hi   String     Hi
3  56.78    Float  blank

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章