/ / पांडों में एक फ़ंक्शन के भीतर डेटाफ्रेम संलग्न करें - पायथन, पांडा, डेटाफ्रेम

एक समारोह के भीतर पांडों में डेटाफ्रेम संलग्न करें - पायथन, पांडा, डेटा फ्रेम

मैं इस फ़ंक्शन और एपीएसड्यूलर का उपयोग डेटाफ्रेम पर पंक्तियों को जोड़ने के लिए कर रहा हूं। समस्या यह है कि जब भी यह चलता है तो यह पिछली प्रविष्टि को ओवरराइट करता है, इसलिए यह वास्तव में कुछ भी "संलग्न" नहीं होता है।

def SMSx(frame):
SMS(frame)
frame = frame.append(SMS.SMSdf)
frame = frame[frame.a != "test"]
frame = DataFrame(frame, columns=["Time", "Hour", "Date", "a", "b", "c", "d", "e", "f", "g", "h", "Total", "Bucket"])
frame.to_excel("Sprint_Log.xlsx", "Sheet 1", index=False)
SMSx.frame = frame

यदि मैं सटीक उसी कोड (नीचे) का उपयोग करता हूं और इसे मैन्युअल रूप से चलाता हूं तो यह ठीक काम करता है। मुझे यकीन नहीं है कि यहां क्या हो रहा है। एसएमएस। एसएसडीडीएफ एसएमएस फ़ंक्शन से डेटा फ्रेम है।

SMS(frame)
frame = frame.append(SMS.SMSdf)
frame = frame[frame.a != "test"]
frame = DataFrame(frame, columns=["Time", "Hour", "Date", "Day", "a", "b", "c", "d", "e", "f", "g", "h", "Total", "Bucket"])
frame.to_excel("Sprint_Log.xlsx", "Sheet 1", index=False)
SMSx.frame = frame

सहायता के लिए धनयवाद!

कोड जो काम करता है:

def SMSx(frame_temp, frame_perm):
SMS(frame_temp)
try:
frame_perm = DataFrame.from_csv("Sprint_Log.csv")
except:
pass
frame_perm = frame_perm.append(SMS.SMSdf)
frame_perm = frame_perm.drop_duplicates()
frame_perm = frame_perm[frame_perm.Ready != "test"]
frame_perm = DataFrame(frame_perm, columns=["Time", "Hour", "Date", "Day", "a", "b", "c", "d", "e", "f", "g", "h", "Total", "Bucket"])
frame_perm.to_csv("Sprint_Log.csv")
SMSx.frame2 = frame_perm

उत्तर:

उत्तर № 1 के लिए 1

मुझे संदेह है कि आप नहीं करते हैं return अद्यतन frame चर। जबकि आप को असाइन करते हैं SMSx फंक्शन स्कोप में परिवर्तनीय, जैसे ही कार्य गुम हो जाता है। मुझे यकीन नहीं है कि यह कैसे काम कर रहा है, क्योंकि आप पहले परिभाषित नहीं करते हैं SMSx परिवर्तनीय (यह वर्तमान फ़ंक्शन का नाम है, या वैश्विक चर भी है?)

def SMSx(frame):
SMS(frame)
frame = frame.append(SMS.SMSdf)
frame = frame[frame.a != "test"]
frame = DataFrame(frame, columns=["Time", "Hour", "Date", "a", "b", "c", "d", "e", "f", "g", "h", "Total", "Bucket"])
frame.to_excel("Sprint_Log.xlsx", "Sheet 1", index=False)
return frame


while True:
frame = SMSx(frame)  # The returned frame will be used on the next iteration

अपने शेष कोड को देखे बिना, यह देखना मुश्किल है कि आप क्या करने की कोशिश कर रहे हैं।