मैंने इंटरनेट से डेटा स्क्रैप किया है और कुछ ऑपरेशन के बाद मुझे इस तरह से डेटाफ्रेम प्राप्त हुआ है;

    0       1        2           3
3   BAFRA   0   10000   0.114705
4   BAFRA   100001  300000  0.114705
1   BAFRA   300001  1000000 0.114705
0   BAFRA   1000001 10000000    0.114705
2   BAFRA   10000001    100000000   0.114705
5   BAFRA   100000000   100000001   0.114705

मैं जो चाहता हूं वह तीसरा कॉलम लेता है और इसे एक विशिष्ट शीट में और एक विशिष्ट कॉलम और पंक्ति में मौजूद एक्सेल फ़ाइल में बदल देता है। मैं इस कोड का उपयोग कर रहा हूं;

with pd.ExcelWriter(...\Gas Settlement Aug20.xlsx",engine="openpyxl") as writer:  
    df[3].to_excel(writer, sheet_name='Unit Prices',header= False, index = False, startcol=12,startrow=24)
import openpyxl 
wb = openpyxl.load_workbook(...\Gas Settlement Aug20.xlsx")
ws = wb['Unit Prices']
wb.save(...\Gas Settlement Aug20.xlsx")

लेकिन यह सारी जानकारी हटा देता है, मैंने 'ए' मोड की कोशिश की लेकिन इस बार यह एक नई शीट बनाता है। क्या मेरे पुराने डेटा को नए से बदलने का कोई तरीका है...

0
eren deliaslan 1 पद 2020, 15:21

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि आप एक साथ दो अलग-अलग तरीकों का उपयोग कर रहे हैं: pd.ExcelWriter और openpyxl। आपके द्वारा प्रदान किए गए नमूने के ठीक बाद आप अपनी फ़ाइल को अपडेट करने के लिए openpyxl का उपयोग इस तरह कर सकते हैं:

import openpyxl 
wb = openpyxl.load_workbook("...\Gas Settlement Aug20.xlsx")
ws = wb['Unit Prices']
startcol = 12
startrow = 24
for item in df[3]:
    ws.cell(startrow, startcol).value = item
    startrow +=1
wb.save(...\Gas Settlement Aug20.xlsx")

लेकिन मेरा सुझाव है कि आप संख्याओं के साथ अनुक्रमण के इस रूप का उपयोग न करें, क्योंकि त्रुटियां बनाना आसान है, और उन त्रुटियों को ढूंढना बहुत कठिन है। आकार के आधार पर, यहां तक ​​कि पूरी फ़ाइल को पढ़ना, फिर से अपडेट करना और सहेजना अधिक सुरक्षित और ट्रैक करने में आसान होगा।

0
Yashar 1 पद 2020, 15:40