【问题标题】:limit number of words in a column in a DataFrame限制 DataFrame 列中的单词数
【发布时间】:2020-04-06 20:33:36
【问题描述】:

我的数据框看起来像

      Abc                       XYZ 
0  Hello   How are you doing today
1   Good                 This is a
2    Bye                   See you
3  Books  Read chapter 1 to 5 only

max_size = 3, 我想将列(XYZ)截断为最大 3 个字(max_size)。有长度小于max_size的行,应该保持原样。

期望的输出:

     Abc                       XYZ
0  Hello               How are you
1   Good                 This is a
2    Bye                   See you
3  Books            Read chapter 1

【问题讨论】:

    标签: python-3.x pandas dataframe split


    【解决方案1】:

    使用带限制的拆分,删除最后一个值,然后将列表连接在一起:

    max_size = 3
    
    df['XYZ'] = df['XYZ'].str.split(n=max_size).str[:max_size].str.join(' ')
    print (df)
         Abc             XYZ
    0  Hello     How are you
    1   Good       This is a
    2    Bye         See you
    3  Books  Read chapter 1
    

    使用 lambda 函数的另一种解决方案:

    df['XYZ'] = df['XYZ'].apply(lambda x: ' '.join(x.split(maxsplit=max_size)[:max_size]))
    

    【讨论】:

    • 第 2 行“再见”已缩减为一个字“见”,这应该避免。无论如何,谢谢,它达到了我的目的。
    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 2016-02-16
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多