develop a function that Trims leading & trailing white space.
here is a simple sample, but real file contains far more complex rows and columns.
I think need check if values are strings, because mixed values in column - numeric with strings and for each string call strip
:
df = df.applymap(lambda x: x.strip() if isinstance(x, str) else x)
print (df)
A B C
0 A b 2 3.0
1 NaN 2 3.0
2 random 43 4.0
3 any txt is possible 2 1 22.0
4 23 99.0
5 help 23 NaN
If columns have same dtypes, not get NaN
s like in your sample for numeric values in column B
:
cols = df.select_dtypes(['object']).columns
df[cols] = df[cols].apply(lambda x: x.str.strip())
print (df)
A B C
0 A b NaN 3.0
1 NaN NaN 3.0
2 random NaN 4.0
3 any txt is possible 2 1 22.0
4 NaN 99.0
5 help NaN NaN