M-M
M-M

Reputation: 71

string manipulations in Pandas

I am trying to manipulate a large list of strings, so cannot do this manually. I am new to python so am having trouble figuring this out.

I have a dataframe with columns:

df = pd.read_csv('filename.csv')
df
A      B      
0      big_apples
1      big_oranges
2      small_pears
3      medium_grapes

and I need it to look more like:

A      B      
0      apples(big)
1      oranges(big)
2      pears(small)
3      grapes(medium)

I was thinking of using a startswith() function and .replace()/concatenate everything. But then I would have to create columns for each of these and i need it to recognize the unique prefixes. Is there a more efficient method?

Upvotes: 1

Views: 36

Answers (1)

johnchase
johnchase

Reputation: 13715

You can do some string formatting and apply it to the Series:

df.B.apply(lambda x: '{}({})'.format(*x.split('_')[::-1]))


0       apples(big)
1      oranges(big)
2      pears(small)
3    grapes(medium)

Here apply is applying the formatting to each item of the series. Then apply the string formatting you desire (I'm using [::-1] to reverse the order of the string) and * to "unpack" the return values that are in a list

Upvotes: 3

Related Questions