יותר

מוחק שורות בטבלת dbf עם פייתון עבור ModelBuilder?

מוחק שורות בטבלת dbf עם פייתון עבור ModelBuilder?


בהיותי לא בקיא בפייתון, ולאחר שביצעתי מחקר ארוך ובלתי פורע באינטרנט, אני מגיש בפניך את הבעיה שלי, בתקווה לתשובה חיובית.

יש לי טבלת DBF עם נתונים גיאוכימיים והייתי רוצה לכתוב סקריפט שישולב במודל רחב יותר שנבנה עם ModelBuilder, וזה ימחק אוטומטית כמה שורות ספציפיות, במיוחד (אנא ראה דוגמה מצורפת) את השורות 1, 2, 4, 5 ו- 6, בעוד השורה 3 (סמל האנליטים) נשמרת. זה ראשון.

שנית, אני רוצה למלא אוטומטית כמה תאים ריקים בכמה עמודים (למשל, A, B, C) עם התו 0 (אפס). תוכל בבקשה להראות לי את הדרך?


למעשה, על ידי מחיקת שורות 1, 2, 4, 5 ו -6, אני רוצה שהשורה 3 תהפוך לשורה הראשונה (הכותרת) של הטבלה (כלומר, Au, Pt, pd, SiO2 ...). האחרונה מכילה 150 שורות נתונים מתחת ל -6 השורות הראשונות, המתחילות במספר 59101 בדוגמה המופיעה.

לפיכך, אינני רוצה לשמור רק את השורה 3, אלא באמת למחוק את השורות 1, 2, 4, 5 ו -6, כך ששורה 3 תהפוך לכותרת של 150 שורות נתונים (כפי שמוצג בדוגמה המצורפת כאן) .


אם אתה רוצה לחלץ רק שורה 3 ורוצה להמשיך להשתמש ב- ModelBuilder אז תרצה משהו כזה:

  1. צור מודל עם ה- DBF שלך כאחת התשומות
  2. להשתמש ב צור טבלת שאילתות הכלי או בחר שכבה לפי תכונות כלי עם השאילתה"" COLUMN_A "= 'סמל אנליטים'"(החלף את שם המאפיין האמיתי עבורCOLUMN_A)
  3. אופציונלי: שימוש העתק שורות ליצירת קובץ DBF חדש ובו רק השורה הרצויה
  4. הזן את הטבלה הזו לתוך חזר ערכי שדה
  5. הזן כל שדה לתוך קבל ערך שדה
  6. להאכיל את השולחן לתוך חשב שדה עם ערך השדה כתנאי מוקדם, תוך שימוש בפונקציה כדוגמת:אם FieldValue אינו None: החזר FieldValue אחר: החזר 0

זה אמור להשאיר לך טבלה של סמלי האנליטים ו -0 בלבד ברווחים הריקים.