Here is the way to search for newlines in a column or DataFrame in Pandas:
(1) Find for newlines in a single column
df[df['name'].str.contains('\n',regex=False)]
(2) Search for newlines in the whole DataFrame
df[df.apply(lambda row: row.astype(str).str.contains('\n').any(), axis=1)]
Let say that we have the next DataFrame:
id | name | url |
---|---|---|
1 | Softhints\nLinux | https://www.softhints.com |
2 | dataplotplus | https://dataplotplus.com/ |
3 | DataScientyst\nPandas | https://datascientyst.com |
4 | test | test\ntest |
Search for newlines in single column
If you need to return only the rows which contains newlines - \n
in a single column - name
. Then we can use string method - contains
of Pandas in combination with regex=False
:
df[df['name'].str.contains('\n',regex=False)]
the returned rows are:
id | name | url |
---|---|---|
1 | Softhints\nLinux | https://www.softhints.com |
3 | DataScientyst\nPandas | https://datascientyst.com |
Search for newlines in multiple columns of DataFrame
If you need to search for newlines and other break symbols in several columns - you can use lambda.
First we will convert the values to string - in order to avoid errors for non string values. Then we are going to search for \n
:
df[df[['name', 'url']].apply(lambda row: row.astype(str).str.contains('\n').any(), axis=1)]
rows which has newlines in those two columns:
id | name | url |
---|---|---|
1 | Softhints\nLinux | https://www.softhints.com |
3 | DataScientyst\nPandas | https://datascientyst.com |
4 | test | test\ntest |
Search for newlines in multiple columns of DataFrame
Searching the whole Pandas DataFrame for breaks and newlines again uses lambda:
df[df.apply(lambda row: row.astype(str).str.contains('\n').any(), axis=1)]
result:
id | name | url |
---|---|---|
1 | Softhints\nLinux | https://www.softhints.com |
3 | DataScientyst\nPandas | https://datascientyst.com |
4 | test | test\ntest |