Reordering lines in a txt file with Python

Question:

I have a txt file containing 2 columns that are not ordered:

1 0.1
4 0.5
3 0.2

To order it for plotting, i found that i could that i could open the file and use zip function such as :

    data=np.loadtxt(file)
    x=data[:, 0]
    y = data[:, 1]
    x, y = zip(*sorted(zip(x, y)))

It works well but it doesn’t actually modify the file and make the replacement to get the final output :

1 0.1
3 0.2
4 0.5
Asked By: haswellrefresh3

||

Answers:

import pandas as pd
data = pd.read_csv("data.txt", sep=' ', header=None)
data.sort_values(by=0).to_csv('data.txt', index=False, header=False, sep=' ')

or with lovely polars (similar to pandas but faster:)):

import polars as pl
data = pl.read_csv("data.txt", sep=' ', has_header=False)
data.sort(by="column_1").write_csv('data.txt', has_header=False, sep=' ')
Answered By: MoRe
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.