Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add a specific number of characters to the end of string in Pandas?

I am using the Pandas library within Python and I am trying to increase the length of a column with text in it to all be the same length. I am trying to do this by adding a specific character (this will be white space normally, in this example I will use "_") a number of times until it reaches the maximum length of that column.

For example:

Col1_Before

A
B
A1R
B2
AABB4

Col1_After

A____
B____
A1R__
B2___
AABB4

So far I have got this far (using the above table as the example). It is the next part (and the part that does it that I am stuck on).

df['Col1_Max'] = df.Col1.map(lambda x: len(x)).max()
df['Col1_Len'] = df.Col1.map(lambda x: len(x))
df['Difference_Len'] = df ['Col1_Max'] - df ['Col1_Len']

I may have not explained myself well as I am still learning. If this is confusing let me know and I will clarify.

like image 503
user3601042 Avatar asked Sep 19 '25 08:09

user3601042


1 Answers

consider the pd.Series s

s = pd.Series(['A', 'B', 'A1R', 'B2', 'AABB4'])

solution
use str.ljust

m = s.str.len().max()
s.str.ljust(m, '_')

0    A____
1    B____
2    A1R__
3    B2___
4    AABB4
dtype: object

for your case

m = df.Col1.str.len().max()
df.Col1 = df.Col1.ljust(m '_')
like image 64
piRSquared Avatar answered Sep 20 '25 22:09

piRSquared