#python #pandas
#python #pandas
Вопрос:
Мне нужен мой код, чтобы заставить Excel отображать 3 десятичных знака в каждой 8-й строке. Фрейм данных представляет собой файл Excel с одним столбцом. Когда я запускаю свой код, python создает файл, который равен исходному, и я не знаю почему. Пожалуйста, помогите мне! Это мой код:
import pandas as pd
import openpyxl
df=pd.read_excel("C:/Users/feder/Desktop/DATA.xlsx")
row=6
while IndexError==True:
value=df.iat[row,0]
new_value="{:.2f}".format(float(value))
print(new_value)
df1=df.replace(value, new_value)
row =8
df1.to_excel("angelquirroz2.xlsx")
book= openpyxl.load_workbook("angelquirroz2.xlsx")
sheet=book["Sheet1"]
book.save("angelquirroz2.xlsx")
print("done")
Комментарии:
1. Единственное отличие заключается в форматировании?
2. Не могли бы вы предоставить пример данных, чтобы мы могли понять, что вы имеете в виду?
3. да, единственное отличие заключается в форматировании. Это пример [ссылка] ( 1drv.ms/x/s !AmPP2mb64sjYgeMn4aXkaX44LzwsOg?e=31LpE2 )
Ответ №1:
теперь мне удалось написать этот цикл, но для изменения 1000 файлов требуется более 8 часов, и я не думаю, что я сделал это действительно эффективным.
import pandas as pd
import openpyxl
import os
import xlsxwriter
from pandas import ExcelWriter
from os import path
import shutil
directory_path= r"C:Users..."
row=6
for filename in os.listdir(directory_path):
if filename.endswith("CHANGED.xlsx"):
continue
if filename.endswith(".ipynb"):
continue
elif filename.endswith("checkpoints"):
continue
elif filename.endswith("spyproject"):
continue
else:
workbook=openpyxl.load_workbook(filename)
df=pd.read_excel(filename)
lenght=len(df)
row=6
while row<=lenght:
value=df.iat[row,0]
new_value=df.iat[row,0]="{:.3f}".format(float(value))
row =8
#print(new_value)
#print("done")
file=filename.replace(".xlsx","")
df.to_excel("" file "CHANGED.xlsx")
print ("DONE!Now let's move the files in a new directory")
directory_output=input("insert the directory path here: ")
dst= ""r"" directory_output ""
for filename in os.listdir(directory_path):
if filename.endswith("CHANGED.xlsx"):
shutil.copy(path.join(directory_path, filename), dst)
else:
continue
спасибо за помощь