When loading the CSV, use
Custom delimiters, select
Semicolon and be sure to have all others empty. When loading the CSV you provided in your comment, I get 187532 points loaded - that seem to be all.
Identify problematic entries
To find the problematic entries, import the CSV as
NO geometry (attribute only table). Check if lat/lon values are correct: in the
Layer properties / Source tab / Query builder and filter invalid values for lat/lon using this query (see screenshot below):
latitude is NULL or
longitude is NULL or
(not (latitude >= -90 and latitude <=90)) or
(not (longitude>= -180 and longitude<=180))
Test to check if there are any features returned: if so, these are the problematic features. Apply the filter and open the attribute table: it should now contain only the filteres features with values outsite the range of -90/90 for lat and -180/180 for lon. You could also directly use the same expression with
Select by expression to directly select these entries (however, in a large dataset, the attribute table will take a while to load).
By the way: you could search in your
longitude fields for any characters that are not numbers or points (commas, spaces etc.). As you have many decimal digits, you might round the values to get rid of potentially problematic characters:
round (latitude, 5) - 5 digits should be precise enough. Even try to convert the lat/lon values to integers, creating a new field:
to_int (latitude), then try creating points with these values to see if like that all points are created.
The problematic entries, here selected with
select by expression:
See how to import CSV without creating geometries:
Inspecting the data you provided (the 389 features that produced an error), it becomes clear what went wrong: the latitude field contains names. It seems that the content of the fields was shifted one column to the right: