البرمجة

تحويل بيانات الأسهم اليومية إلى أسبوعية باستخدام pandas في Python

في هذا السياق، يتعين عليك استخدام مكتبة pandas في Python لتحويل البيانات اليومية إلى بيانات أسبوعية. يمكن تحقيق ذلك باستخدام دالة resample المدمجة في pandas. سأقدم لك نموذجًا للكود يوضح كيفية تحويل البيانات اليومية إلى بيانات أسبوعية باستخدام pandas:

python
import pandas as pd # تحميل البيانات اليومية data = { 'Date': ['2010-01-04', '2010-01-05', '2010-01-06', '2010-01-07', '2010-01-08', '2010-01-11', '2010-01-12', '2010-01-13', '2010-01-14', '2010-01-15'], 'Open': [38.660000, 39.389999, 39.549999, 40.090000, 40.139999, 40.209999, 40.160000, 39.930000, 40.490002, 40.570000], 'High': [39.299999, 39.520000, 40.700001, 40.349998, 40.310001, 40.520000, 40.340000, 40.669998, 40.970001, 40.939999], 'Low': [38.509998, 39.029999, 39.020000, 39.910000, 39.720001, 40.040001, 39.279999, 39.709999, 40.189999, 40.099998], 'Close': [39.279999, 39.430000, 40.250000, 40.090000, 40.290001, 40.290001, 39.980000, 40.560001, 40.520000, 40.450001], 'Volume': [1293400, 1261400, 1879800, 836400, 654600, 963600, 1012800, 1773400, 1240600, 1244200] } df = pd.DataFrame(data) df['Date'] = pd.to_datetime(df['Date']) df.set_index('Date', inplace=True) # تحويل البيانات إلى بيانات أسبوعية weekly_data = df.resample('W-Mon').agg({ 'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last', 'Volume': 'sum' }) # طباعة النتائج print(weekly_data)

في هذا الكود، تم استخدام resample('W-Mon') لتجميع البيانات بترتيب أسبوعي ابتداءً من يوم الاثنين. ثم تم استخدام agg لتحديد الوظائف المطلوبة لكل عمود. يتم استخدام ‘first’ لاختيار قيمة الفتح في بداية الأسبوع، ‘max’ لاختيار أعلى قيمة للارتفاع، ‘min’ لاختيار أدنى قيمة للانخفاض، ‘last’ لاختيار قيمة الإغلاق في نهاية الأسبوع، و ‘sum’ لجمع حجم التداول.

أتمنى أن يكون هذا الكود مفيدًا لك في تحويل البيانات اليومية إلى بيانات أسبوعية.

المزيد من المعلومات

بالطبع، دعنا نوسع المحتوى بمزيد من المعلومات حول كيفية فهم وتكامل الكود الذي تم توفيره. يمكنك قراءة الشرح التفصيلي أدناه:

فهم الكود:

  1. تحميل البيانات:

    • تمثل البيانات اليومية في DataFrame، حيث يحتوي كل صف على معلومات مثل التاريخ، الفتح، الأعلى، الأدنى، الإغلاق، وحجم التداول.
  2. تحويل التواريخ:

    • يتم تحويل العمود “Date” إلى نوع البيانات datetime باستخدام pd.to_datetime() لتسهيل التعامل مع التواريخ.
  3. تعيين الفهرس:

    • يتم تعيين عمود “Date” كفهرس للDataFrame باستخدام set_index().
  4. تحويل البيانات اليومية إلى بيانات أسبوعية:

    • تستخدم resample لتحويل البيانات اليومية إلى بيانات أسبوعية، وتحديدًا باستخدام ‘W-Mon’، مما يعني أن الفترة الزمنية الجديدة تبدأ في يوم الاثنين.
  5. استخدام agg للتجميع:

    • agg تُستخدم لتحديد الوظائف التي تُطبق على كل عمود في البيانات الأسبوعية. في هذه الحالة، تم استخدام:
      • ‘first’ لاختيار قيمة الفتح في بداية الأسبوع.
      • ‘max’ لاختيار أعلى قيمة للارتفاع خلال الأسبوع.
      • ‘min’ لاختيار أدنى قيمة للانخفاض خلال الأسبوع.
      • ‘last’ لاختيار قيمة الإغلاق في نهاية الأسبوع.
      • ‘sum’ لجمع حجم التداول خلال الأسبوع.
  6. طباعة النتائج:

    • يتم طباعة البيانات الأسبوعية الجديدة بعد التحويل.

المزيد من المعلومات:

  • pandas:

    • pandas هي مكتبة Python قوية لتحليل البيانات والتي توفر أدوات فعالة للتعامل مع الهياكل البيانية مثل DataFrame.
  • resample:

    • resample هي وظيفة في pandas تستخدم لتحويل البيانات الزمنية إلى فترات زمنية أخرى، مثل التحويل من يومي إلى أسبوعي.
  • agg:

    • agg (اختصار للكلمة “aggregate”) تستخدم لتحديد وتطبيق وظائف مخصصة على البيانات، وهي مفيدة في التحليل والتجميع.
  • DatetimeIndex:

    • DatetimeIndex هو فهرس يستخدم لتحقيق الوصول الفعال إلى البيانات الزمنية في pandas، ويسهل العمل مع التواريخ.

بهذه الطريقة، يتمكن المستخدم من تحويل البيانات اليومية إلى بيانات أسبوعية بطريقة مرتبة وفعالة.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!