【问题标题】:python renaming strings in a column to a specified stringpython将列中的字符串重命名为指定的字符串
【发布时间】:2017-09-26 17:27:21
【问题描述】:

我有一列包含许多不同的字符串,我想要做的只是将我指定的所有字符串重命名为一个字符串,以便它们都具有相同的字符串。所以我的数据框看起来像这样:

          My_strings
1   I bumped my knee because I fell
2   I fell off my bike but I had a helmet
3   I am alright I just need to be alert
4   If I fall I will get back up

所以在我的列 My_strings 中说,我想查找包含特定单词的句子。

df.loc[df.T_L_DESC.str.contains("fell|fall|fallen", na=False), 'Slippery'] = df.T_L_DESC

我正在寻找的特定词是“fell|fall|fallen”,一旦在我的专栏的句子中找到这些词,它们就会被分成另一个名为“Slip_Fall”的专栏

我只想将所有包含这些单词的字符串重命名为一个特定的字符串。有一点需要注意,当我运行上面的代码时,它会使每一个不包含其中指定单词的句子 NaN 所以我的最终数据框看起来像这样:

            My_strings                           Slippery
1   I bumped my knee because I fell            Life_Lessons   
2   I fell off my bike but I had a helmet      Life_Lessons
3   NaN                                        NaN 
4   If I fall I will get back up               Life_Lessons

所以我不想明显地将我在数据框中获得的 NaN 值更改为 Life_Lessons 我只想将包含我的关键字的句子更改为 Life_Lessons

提前致谢

【问题讨论】:

    标签: python pandas dataframe col


    【解决方案1】:

    一个简单的解决方案:

    In [191]: df.loc[df.T_L_DESC.str.contains("fell|fall|fallen", na=False), 'Slippery'] = 'Life_Lessons'
    
    In [192]: df
    Out[192]:
                                    T_L_DESC      Slippery
    0        I bumped my knee because I fell  Life_Lessons
    1  I fell off my bike but I had a helmet  Life_Lessons
    2   I am alright I just need to be alert           NaN
    3           If I fall I will get back up  Life_Lessons
    
    In [193]: df.loc[df.Slippery!='Life_Lessons', 'T_L_DESC'] = np.nan
    
    In [194]: df
    Out[194]:
                                    T_L_DESC      Slippery
    0        I bumped my knee because I fell  Life_Lessons
    1  I fell off my bike but I had a helmet  Life_Lessons
    2                                    NaN           NaN
    3           If I fall I will get back up  Life_Lessons
    

    【讨论】:

    • 谢谢,我没有意识到我使用 lambda 可以很容易地做到这一点,但我认为他们更容易解决。
    猜你喜欢
    • 2017-05-26
    • 2021-11-26
    • 2020-05-05
    • 1970-01-01
    • 2020-09-19
    • 2021-12-04
    • 2021-08-02
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多