#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)