I am repeatedly doing an operation which creates a record in my Cassandra table at every iteration. However, for my purposes I only need a limited number of the most recent results stored. Stale rows are not interesting, and also the database would quickly inflate in size because the operation is meant to run many times a second over many days.
I am essentially using the Cassandra table as a buffer. That is by design.
Is there a way to set Cassandra to have a limit on how many rows a table can have, and drop old rows automatically with minimum performance impact when new rows are pushed?
My codebase is in Python so I'd prefer a Python solution.
No, there is no such method built-in. 
The traditional approach in Cassandra is for removing old information is not by count, but rather by date: When you insert a row (or even modify a single cell), you can put an expiration time (a.k.a. TTL) on this data. E.g., you write a row that is set to expire on one day. Cassandra will then take care of dropping the expired data from disk - automatically and efficiently (actually dropping the data happens during compaction). 
This is of course not the same as saying you always want to keep exactly the newest 1000 rows, but maybe this is good enough for your use case, if your main intention is to keep your database size from exploding, and not really to keep a specific number of rows.
Keep only newest N rows in Cassandra