I have a pandas dataframe "df". In this dataframe I have multiple columns, one of which I have to substring. Lets say the column name is "col". I can run a "for" loop like below and substring the column:
for i in range(0,len(df)): df.iloc[i].col = df.iloc[i].col[:9]
But I wanted to know, if there is an option where I don't have to use a "for" loop, and do it directly using an attribute.I have huge amount of data, and if I do this, the data will take a very long time process.
str accessor with square brackets:
df['col'] = df['col'].str[:9]
df['col'] = df['col'].str.slice(0, 9)
case the column isn't string, use astype to convert:
df['col'] = df['col'].astype(str).str[:9]
I needed to convert a single column of strings of form nn.n% to float. I needed to remove the % from the element in each row. The attend data frame has two columns.
attend.iloc[:,1:2]=attend.iloc[:,1:2].applymap(lambda x: float(x[:-1]))
Its an extenstion to the original answer. In my case it takes a dataframe and applies a function to each value in a specific column. The function removes the last character and converts the remaining string to float.