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"