【问题标题】:How to replace rows based on this condition?如何根据此条件替换行?
【发布时间】:2021-08-26 12:42:32
【问题描述】:

我想知道如何制作这个东西: 例如行'AMG 1.4 oil''AMG' 开头,我只需要将它设为'AMG'。如果不以'AMG'开头,则不应更改。

你能告诉我怎么做吗? 提前致谢!

【问题讨论】:

    标签: python pandas dataframe lambda apply


    【解决方案1】:
    df.loc[df.my_col.str.startswith('AMG'),'my_col'] = 'AMG'
    

    【讨论】:

      【解决方案2】:

      list-comprehension 可用于重命名单个列。
      如下

      df.columns = ['AMG' if 'AMG' in x else x for x in df.columns]
      

      【讨论】:

      • 问题是关于数据,而不是列...
      【解决方案3】:

      试试这个:

      df = pd.DataFrame({'row': {0: 'AMG 1.4 oil', 1: 'MG 1.4 oil', 2: '1.4 oil', 3: 'oil'}})
      
      df['row'].apply(lambda x : 'AMG' if x[:3]=='AMG' else x)
      

      输出:

      0           AMG
      1    MG 1.4 oil
      2       1.4 oil
      3           oil
      Name: row, dtype: object
      

      【讨论】:

      • @hirolau,谢谢,我编辑了代码块,这样对吗?
      猜你喜欢
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 2022-01-19
      • 2019-05-20
      • 2023-02-13
      • 2021-08-16
      • 1970-01-01
      相关资源
      最近更新 更多