Зачем использовать read_fwf в Pandas, если я могу просто использовать read_csv со специальным разделителем?Python

Программы на Python
Anonymous
Зачем использовать read_fwf в Pandas, если я могу просто использовать read_csv со специальным разделителем?

Сообщение Anonymous »

Я не вижу смысла использовать read_fwf в Pandas. Зачем мне использовать это вместо read_csv, который поддерживает пользовательские разделители? Я попробовал протестировать как скорость для файла с большим столбцом фиксированной ширины, так и read_csv на моей машине работает намного быстрее:
data = ("colum1 column2222 column3333 column4\n"
"id8141 360.242940 149.910199 11950.7\n"
"id1594 444.953632 166.985655 11788.4\n"
)

colspecs = [(0, 6), (8, 20), (21, 33), (34, 43)]
data = data * 10000000

with open("big_file.txt", "w") as f:
f.write(data)

start_time = time.time()
df = pd.read_csv("big_file.txt", header=None, dtype={"colum1": str, "column2222": float, "column3333": float, "column4":float}, sep="\s+")
print(f"--- {time.time() - start_time} seconds ---")
--- 4.0295188426971436 seconds ---
start_time = time.time()
df = pd.read_fwf("big_file.txt", header=None, colspecs=colspecs,
dtype={"colum1": str, "column2222": float, "column3333": float, "column4":float})
print(f"--- {time.time() - start_time} seconds ---")
--- 77.41955280303955 seconds ---


Подробнее здесь: https://stackoverflow.com/questions/754 ... -separator

Вернуться в «Python»