Добавление строки в csv-файл с помощью python (PANDA)

#python #pandas #csv #export-to-csv

#python #панды #csv #экспорт в csv

Вопрос:

Как следует из названия, я пытаюсь добавить строку в уже существующий csv-файл, созданный на python с использованием pandas с помощью: df.to_csv("dataframe.csv", index=False, header=True) , и, просмотрев Интернет, я нашел этот метод:

 df = pd.DataFrame([], columns=[f"{name}", f"{usr}", f"{passw}"])
df.to_csv("dataframe.csv", mode="a", header=False)
 

но когда я смотрю на csv-файл, ничего не происходит.
Я делаю что-то не так?
Я собираюсь включить всю функцию целиком, хотя я не думаю, что это так уж важно

 # Takes the user input and appends it to the csv file (this is where I have the problem)
def usr_input():
    name = input("Website name: ")
    usr = input("Email or username: ")
    passw = input("Password: ")

    df = pd.DataFrame([], columns=[f"{name}", f"{usr}", f"{passw}"])
    df.to_csv("dataframe.csv", mode="a", header=False)

    flag = input("Add another one? (y/n): ")
    if flag == "y":
        usr_input()
    else:
        quit()
 

Здесь я создаю csv-файл:

 def init():
    if not os.path.isfile("dataframe.csv"):
        df = pd.DataFrame([], columns=["Name", "Email / Username", "Password"])
        df.to_csv("dataframe.csv", index=False, header=True)
    else:
        usr_input()
 

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

1. Просто замечание: использовать pandas только для добавления одной строки в конец csv-файла — все равно что использовать отбойный молоток, чтобы раздавить комара… Не неправильно, но перебор.

Ответ №1:

Найден ответ! Мне просто нужно было использовать функцию loc[]:

 data = [f"{name}", f"{usr}", f"{passw}"]
df.loc[len(df)] = data
df.to_csv("dataframe.csv", index=False)