Я намагаюся прочитати файл у пандах. У файлі є значення, розділені пробілом, але з різною кількістю пробілів, які я намагався:
pd.read_csv('file.csv', delimiter=' ')
але це не працює
Відповіді:
додати delim_whitespace=True
аргумент, це швидше, ніж регулярний вираз.
delimiter=' '
оскільки вони взаємовиключні в останніх версіях.
delimiter=' '
дуже крихкий, він говорить, що слід очікувати одного і одного простору. Немає вкладок, рядків новин, декількох пробілів, нерозривних пробілів, їх комбінації тощо delimiter='\s+'
- це те, що рекомендує pandas і є більш надійним.
ви можете використовувати регулярний вираз як роздільник:
pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
engine = "python"
щоб уникнути попередження.
Якщо ви не можете отримати аналіз тексту для роботи за прийнятою відповіддю (наприклад, якщо ваш текстовий файл містить неоднорідні рядки), тоді варто спробувати за допомогою бібліотеки CSV Python - ось приклад використання користувацького Dialect :
import csv
csv.register_dialect('skip_space', skipinitialspace=True)
with open(my_file, 'r') as f:
reader=csv.reader(f , delimiter=' ', dialect='skip_space')
for item in reader:
print(item)