1

My dataframe looks like

      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_words = 6, filler_word = 'end'. In column XYZ, i want to pad it, such that all the rows are max_words in length.

Desired Output

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

Row 3 is not filled, as it's length was already 6.

Syed Md Ismail
  • 827
  • 1
  • 9
  • 13

1 Answers1

1

IIUC, try this:

df['XYZ'] = df['XYZ'].str.split(expand=True)\
                     .fillna('end')\
                     .apply(lambda x: x.str.cat(sep=' '), axis=1)

print(df)

Output:

     Abc                          XYZ
0  Hello  How are you doing today end
1   Good        This is a end end end
2    Bye      See you end end end end
3  Books     Read chapter 1 to 5 only
Scott Boston
  • 147,308
  • 15
  • 139
  • 187