简体   繁体   中英

Reordering lines in a txt file with Python

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
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=' ')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM