Как создать новый csv из csv с разделенными ячейками
Я создал функцию для конвертации csv. Основная тема: получить файл csv вида:
,features,corr_dropped,var_dropped,uv_dropped
0,AghEnt,False,False,False
и я хочу преобразовать его в другой файл csv:
features | corr_dropped | var_dropped | uv_dropped | |
---|---|---|---|---|
0 | AghEnt | False | False | False |
Я создал функцию для этого, но она не работает. Вывод такой же, как и входной файл.
функция
def convert_file():
input_file = "../input.csv"
output_file = os.path.splitext(input_file)[0] + "_converted.csv"
df = pd.read_table(input_file, delimiter=',')
df.to_csv(output_file, index=False, header=True, sep=',')
Похоже, что существует проблема с разделителем, используемым для чтения входного файла. В настоящее время он установлен на ','
, но входной файл, похоже, использует ','
в качестве разделителя значений, а не разделителя между значениями и следующей строкой.
Попробуйте изменить аргумент разделителя в pd.read_table()
на '\n'
:
def convert_file():
input_file = "../input.csv"
output_file = os.path.splitext(input_file)[0] + "_converted.csv"
df = pd.read_table(input_file, delimiter='\n')
df.to_csv(output_file, index=False, header=True, sep=',')
Это должно правильно прочитать входной файл как DataFrame
и записать выходной в новый файл с нужным форматом.
вы можете использовать
df = pd.read_csv(input_file)
это работает с вашими данными. Однако разница невелика. Единственное, что меняется, это то, что пустое место перед первым разделителем теперь содержит Unnamed: 0
.
Это то, что вы хотели? (Все еще не совсем понятно, чего вы пытаетесь достичь, поскольку вы импортируете csv и экспортируете те же данные в csv, ничего с ними не делая. Пример вывода, который вы показали, - это просто форматированная версия ваших исходных данных. Но форматирование - это не то, что может делать csv)