【问题标题】:Rename the rows of a column based on the corresponding rows of another column根据另一列的对应行重命名一列的行
【发布时间】:2020-10-06 23:35:12
【问题描述】:

我有一个这样的熊猫数据框

GRUPPO FORMATO | Creative Size 
_______________________________
'Lightbox'       | '200x100'
'Lightbox'       | '100x200'
'Something'      | 'hello'

如果 GRUPPO FORMATO 的行等于“Lightbox”,我想使用以下架构重新标记“Creative Size”的行:字符串“Lightbox”和列 Creative Size 中的相应字符串。 所需的输出是:

GRUPPO FORMATO | Creative Size 
_______________________________
'Lightbox'       | 'Lightbox 200x100'
'Lightbox'       | 'Lightbox 100x200'
'Something'      | 'hello'

我试过了,但是不行:

db_new.loc[db_new['GRUPPO FORMATO']=='Lightbox', 'Creative Size']= str('Lightbox '+ db_new['Creative Size])

有什么帮助吗?

【问题讨论】:

  • 尝试不使用str(),只使用... = 'Lightbox '+ db_new['Creative Size']
  • db_new.loc[db_new['GRUPPO FORMATO'] == 'Lightbox','Creative Size'] = db_new['GRUPPO FORMATO'].str.cat(df['Creative Size'],' ') 非常接近,放弃str 你就是金子
  • @Ben.T 已经试过不行
  • @Manakin 是的,它有效,谢谢

标签: python-3.x pandas


【解决方案1】:

你可以试试np.where:

df['Creative Size'] = np.where(df['GRUPPO FORMATO'] == 'Lightbox', 
                               df['GRUPPO FORMATO'] + ' ' + df['Creative Size'], 
                               df['Creative Size'])
print(df)

  GRUPPO FORMATO     Creative Size
0       Lightbox  Lightbox 200x100
1       Lightbox  Lightbox 100x200
2      Something             hello

【讨论】:

    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2021-03-08
    • 2015-10-29
    • 2019-02-25
    • 2022-01-17
    • 2014-07-23
    相关资源
    最近更新 更多