Хотя я могу печатать # десятичных знаков в консоли, я значительно усложняюсь при попытке записи в CSV с ПРАВИЛЬНО отформатированным числом.В приведенном ниже коде мне каким-то образом удалось разделить целые числа на тысячи и получить результат в CSV, но я не могу избавиться от лишних ".,".Цикл for - действительно сложная задача.Может быть, кто-то может сказать мне, как взломать головоломку.
Просмотреть строки кода ниже.Должно было выглядеть как в печатном виде в консоли, так и в CSV-файле, в который я пишу:
23 400 344,567, 54 363 744,678, 56 789 117 176, 4 132 454,987
ВХОД:
import pandas as pd
def insert_comma(s):
str=''
count=0
for n in reversed(s):
str += n
count+=1
if count == 3:
str += ','
count=0
return ''.join([i for i in reversed(str)][1:])
d = {'Quarters' : ['Quarter1','Quarter2','Quarter3','Quarter4'],
'Revenue':[23400344.567, 54363744.678, 56789117.456, 4132454.987]}
df=pd.DataFrame(d)
df['Revenue']=df.apply(lambda x: insert_comma(str(x['Revenue'] / 1000)), axis=1)
# pd.options.display.float_format = '{:.0f}'.format
df.to_csv("C:\\Users\\jcst\\Desktop\\Private\\Python data\\new8.csv", sep=";")
# round to two decimal places in python pandas
# .options.display.float_format = '{:.0f}'.format
print(df)
ВЫХОД
Quarters Revenue
0 Quarter1 234,00.,344
1 Quarter2 543,63.,744
2 Quarter3 567,89.,117
3 Quarter4 1,32.,454