Чтение CSV-файла с помощью функции Python

#python #pandas #export-to-csv

Вопрос:

Я пытаюсь записать свою функцию чтения/записи в csv, но она не может вернуть никакого значения.

Я читаю из CSV, заменяя » ; «во втором столбце на «» и выполняя и сохраняя уже обработанный csv.

Но по какой-то причине он не сохраняет мой csv, моя функция неверна?

Я начинаю работать в мире Python, и у меня возникли небольшие проблемы.

 import pandas as pd

header_col = ['col0','col1','col2','col3','col4','col5','col6','col7','col8','col9']
df = pd.read_csv('myfile_<date>.csv', encoding="ISO-8859-1", sep=';', names=header_col, header=None)

def file_load(df):
    df['col1'] = df['col1'].str.replace(';',' ') 
    df.drop(columns=['col8'], inplace=True)
    df.drop(columns=['col9'], inplace=True)
    
    return df

def save_file(dataframe):
    df = dataframe
    df.to_csv('myfile_<date>_treat.csv' ,sep=';', encoding='utf-8', index=False)
 

Комментарии:

1. Зачем вам это нужно df = dataframe ? Просто используйте dataframe.to_csv

2. Просто чтобы облегчить интерпретацию @Barmar

3. У меня это не сработало….

4. Покажите, как вы вызываете функции.

5. @NagabhushanSN, если только они не сбежали.

Ответ №1:

 import pandas as pd

def file_load(df):
    df['col1'] = str(df['col1']).replace(';',' ') 
    df.drop(columns=['col8'], inplace=True)
    df.drop(columns=['col9'], inplace=True)
    return df

def save_file(dataframe):
    df = dataframe
    df.to_csv('myfile_<date>_treat.csv' ,sep=',', encoding='utf-8', 
    index=False)


def main():
    header_col= 
    ['col0','col1','col2','col3','col4','col5','col6','col7','col8','col9']
    df = pd.read_csv('myfile_<date>.csv', encoding="ISO-8859-1", sep=';', 
    names=header_col, header=None)

    df1 = file_load(df)
    save_file(df1)

if __name__ == '__main__':
    main()