👻 Check our latest review to choose the best laptop for Machine Learning engineers and Deep learning tasks!
I want to find all values in a Pandas dataframe that contain whitespace (any arbitrary amount) and replace those values with NaNs.
Any ideas how this can be improved?
Basically I want to turn this:
A B C
2000-01-01 -0.532681 foo 0
2000-01-02 1.490752 bar 1
2000-01-03 -1.387326 foo 2
2000-01-04 0.814772 baz
2000-01-05 -0.222552 4
2000-01-06 -1.176781 qux
Into this:
A B C
2000-01-01 -0.532681 foo 0
2000-01-02 1.490752 bar 1
2000-01-03 -1.387326 foo 2
2000-01-04 0.814772 baz NaN
2000-01-05 -0.222552 NaN 4
2000-01-06 -1.176781 qux NaN
I"ve managed to do it with the code below, but man is it ugly. It"s not Pythonic and I"m sure it"s not the most efficient use of pandas either. I loop through each column and do boolean replacement against a column mask generated by applying a function that does a regex search of each value, matching on whitespace.
for i in df.columns:
df[i][df[i].apply(lambda i: True if re.search("^s*$", str(i)) else False)]=None
It could be optimized a bit by only iterating through fields that could contain empty strings:
if df[i].dtype == np.dtype("object")
But that"s not much of an improvement
And finally, this code sets the target strings to None, which works with Pandas" functions like fillna()
, but it would be nice for completeness if I could actually insert a NaN
directly instead of None
.
👻 Read also: what is the best laptop for engineering students?
We hope this article has helped you to resolve the problem. Apart from Replacing blank values (white space) with NaN in pandas, check other code Python module-related topics.
Want to excel in Python? See our review of the best Python online courses 2023. If you are interested in Data Science, check also how to learn programming in R.
By the way, this material is also available in other languages:
- Italiano Replacing blank values (white space) with NaN in pandas
- Deutsch Replacing blank values (white space) with NaN in pandas
- Français Replacing blank values (white space) with NaN in pandas
- Español Replacing blank values (white space) with NaN in pandas
- Türk Replacing blank values (white space) with NaN in pandas
- Русский Replacing blank values (white space) with NaN in pandas
- Português Replacing blank values (white space) with NaN in pandas
- Polski Replacing blank values (white space) with NaN in pandas
- Nederlandse Replacing blank values (white space) with NaN in pandas
- 中文 Replacing blank values (white space) with NaN in pandas
- 한국어 Replacing blank values (white space) with NaN in pandas
- 日本語 Replacing blank values (white space) with NaN in pandas
- हिन्दी Replacing blank values (white space) with NaN in pandas
Tallinn | 2023-01-27
Thanks for explaining! I was stuck with Replacing blank values (white space) with NaN in pandas for some hours, finally got it done 🤗. Will use it in my bachelor thesis
London | 2023-01-27
Maybe there are another answers? What Replacing blank values (white space) with NaN in pandas exactly means?. Will use it in my bachelor thesis
Abu Dhabi | 2023-01-27
Maybe there are another answers? What Replacing blank values (white space) with NaN in pandas exactly means?. Will get back tomorrow with feedback