У меня есть файл XLSX, который я использую Python для преобразования в CSV, чтобы можно было манипулировать с помощью панд. Затем я хотел бы экспортировать данные из файла CSV в форматированный текстовый документ.
Данные xlsx следующие:
Я хотел бы, чтобы формат файла TXT был следующим:
*****NEW RECORD*****
Name : Gustavo Barrett
Number : 45
Branch Manager : Avery Page
*****RECORD END*****
*****NEW RECORD*****
Name : Sterling Lynn
Number : 199
Branch Manager : Matteo Hicks
*****RECORD END*****
Ниже приведен мой текущий код, который сначала печатает все имена, затем номера и менеджеров филиалов, он печатает их все отдельно, есть идеи, как я могу вывести его в нужном мне формате?
import pandas as pd
from pandas import DataFrame
import time
with open("waffles.txt", "w") as file:
filename = 'finals.xlsx'
df = pd.DataFrame(pd.read_excel(filename))
names = df["Name"].to_list()
numbers = df["Number"].to_list()
branch = df["Branch Manager"].to_list()
for i in names:
for i in names:
txt_name = "Name : "+str(i)
for o in numbers:
txt_number = "Number : "+str(o)
for a in branch:
txt_branch = "Branch Manager : "+str(a)
file.write("\n")
file.write("*****NEW RECORD*****")
file.write("\n")
file.write(i+ "\n")
file.write(str(o)+ "\n")
file.write(a+ "\n")
file.write("*****RECORD END*****")
file.write("\n")
Есть ли какая-то проблема с сортировкой или что... у вас больше циклов for, чем вам нужно.
Это должно работать, с настройками. Я бы предложил прочитать базовое форматирование строк в Python.
import pandas as pd
with open("waffles.txt", "w") as file:
filename = 'finals.xlsx'
df = pd.read_excel(filename)
for index, row in df.iterrows():
file.write("\n*****NEW RECORD*****\n")
# Adjust it with csv column names
file.write(f"Name : {row['name']}\n")
file.write(f"Number : {row['number']}\n")
file.write(f"Branch Manager : {row['branch manager']}\n")
file.write("*****RECORD END*****\n")
Спасибо, это сработало. Сейчас собираюсь прочитать о форматировании строк в Python :)
Пожалуйста, обратитесь к основам Python.