From polars documentation:
Rechunking
Before a concatenation we have two dataframes df1 and df2. Each column in df1 and df2 is in one or more chunks in memory. By default, during concatenation the chunks in each column are not made contiguous. This makes the concat operation faster and consume less memory but it may slow down future operations that would benefit from having the data be in contiguous memory. The process of copying the fragmented chunks into a single new chunk is known as rechunking. Rechunking is an expensive operation. Prior to version 0.20.26, the default was to perform a rechunk but in new versions, the default is not to. If you do want Polars to rechunk the concatenated DataFrame you specify rechunk = True when doing the concatenation.
You need set recunk parameter to True in in the expression where you use concat, for example: some_df = pl.concat([df1, df2], rechunk=True)