किसी सूत्र फ़ाइल में स्ट्रिंग मानों की डेटाफ़्रेम कैसे लिखें रूपांकित संख्यात्मक मान?
मूल रूप से मेरे पास स्ट्रिंग मानों की एक सूची है जो कि संख्यात्मक में परिवर्तित होने और एक्सेल शीट पर मुद्रित करने के लिए होती है। Im पहले से ही ऐसा करने में सक्षम है, लेकिन मैं चाहता हूं कि उन मूल्यों को "एक्सेल नंबर मान" के रूप में मुद्रित किया जाए । यह है जो मुझे मिला:
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
listOfValues = ['3913375,45','126179,15','22324,72','26335,28','3699901,34']
df_values = pd.DataFrame({'TOTAL': listOfValues}).apply(pd.to_numeric)
df_values.to_excel(writer, sheet_name='test')
writer.save()
मेरा परिणाम है:
परिणामी एक्सेल
लेकिन मैं चाहता हूं कि इसे अंकों के रूप में मुद्रित किया जाए क्योंकि डॉट्स द्वारा अलग किए गए संख्यात्मक मान इसे तैयार करने में आसान बनाते हैं, जैसे:
मैं परिणाम के रूप में क्या करना चाहता हूँ
(मैं चाहता हूं कि समाधान परिणामी एक्सेल में तार के रूप में मुद्रित नहीं किया जा सकता है, इसे संख्यात्मक मानों की आवश्यकता है, जैसे कि हम libreoffice calc में "Format as Number (Shift + ctrl + 1)" विकल्प का उपयोग कर रहे थे।
(परीक्षण के लिए पायथन 3.8.5 और लिब्रेऑफिस कैल्क का उपयोग कर रहा हूं, लेकिन परिणाम एक्सेल 2016 में काम करने का इरादा है)।
यह संभव है? आपकी मदद के लिए धन्यवाद, और मेरी अंग्रेजी के बारे में क्षमा करें!
जवाब
मुझे यह अन्य प्रश्न मिला है , यह अलग है, लेकिन उत्तर वही है जो मुझे लगता है।
from openpyxl import load_workbook
wb = load_workbook('a.xlsx')
ws = wb[wb.sheetnames[0]]
cell11 = ws.cell(1, 1)
cell11.number_format = '#,##0.00'
wb.save('b.xlsx')
wb.close()
यह उस प्रारूप के साथ काम करता है, लेकिन ऐसा लगता है कि यह '#.##0,00'
प्रारूप के साथ काम नहीं करता है
इसे देखो https://xlsxwriter.readthedocs.io/working_with_pandas.html
Set_column () का उपयोग करके किसी अन्य, गैर दिनांक / डेटाटाइम कॉलम डेटा को प्रारूपित करना संभव है
इससे स्वरूपण उदाहरण कोड बदलने का प्रयास करें:
format1 = workbook.add_format({'num_format': '#,##0.00'})
इसके लिये:
format1 = workbook.add_format({'num_format': '#.##0,00'})