Skip to content Skip to sidebar Skip to footer

Getting Substring From Column In Python Using Apply Lambda And Str

I have a dataframe with a column Fib, I am trying to grab a substring from it: Could anyone please tell me why this code does not work: df['new'] = df['Fib'].apply(lambda x:x.str[2

Solution 1:

The problem in your code is that the lambda function you apply along the rows of your series will be receiving a string as it appears. Here's an example to illustrate this:

df = pd.DataFrame({'num':[1,4,2], 'alpha':['apple','orange','peach']})
df['alpha'].apply(lambda x:type(x))
<class'str'>
<class'str'>
<class'str'>

Note that Series.str methods are only for Series, as clearly stated in the documentation:

Vectorized string functions for Series and Index

So for your example you should avoid using apply. Instead do:

df['alpha'].str[2:10]0ple1ange2achName: alpha, dtype: object

If what you want is to use apply instead as you mention, you simply need lambda x: x[2:10] as you are directly slicing the string:

df['alpha'].apply(lambda x: x[2:10])
0ple1ange2achName: alpha, dtype: object

Post a Comment for "Getting Substring From Column In Python Using Apply Lambda And Str"