اذهب إلى المحتوى

السؤال

نشر

عند إنشاء DataFrame  في مكتبة Pandas من خلال مصفوفة Numpy، كيف أحدد عمود الفهرس index ورؤوس الأعمدة headers؟

على سبيل المثال، لدي مصفوفة Numpy تتكون من قائمة من القوائم  list of lists، تمثل مصفوفة ثنائية الأبعاد مع تسميات الصفوف وأسماء الأعمدة كما هو موضح أدناه:

 

data = np.array([
  ['', 'Col1', 'Col2'], 
  ['Row1', 1, 2], 
  ['Row2', 3, 4]
])

أرغب في أن يحتوي DataFrame الناتج على Row1 و Row2 كقيم الفهرس ، و Col1 و Col2 كقيم رؤوس الأعمدة headers

كيف يمكنني جعل النتيجة تصبح بهذا الشكل؟

     Col1 Col2
Row1    1    2
Row2    3    4

 

Recommended Posts

  • 2
نشر (معدل)

بالشكل التالي:

pd.DataFrame(data=data[1:,1:],    # القيم
              index=data[1:,0],    # العمودالأول كفهرس
              columns=data[0,1:])  # الصف الأول كأسماء الأعمدة

حيث تحتاج إلى تحديد ال data والفهرس والأعمدة إلى باني ال dataframe:

import numpy as np
data = np.array([
  ['', 'Col1', 'Col2'], 
  ['Row1', 1, 2], 
  ['Row2', 3, 4]
])
import pandas as pd
pd.DataFrame(data=data[1:,1:],    # القيم
              index=data[1:,0],    # العمودالأول كفهرس
              columns=data[0,1:])  # الصف الأول كأسماء للأعمدة
"""
 	Col1 	Col2
Row1 	1 	2
Row2 	3 	4
"""

حيث أن:

data[1:,1:]
"""
array([['1', '2'],
       ['3', '4']], dtype='<U4')
"""
data[1:,0]
"""
array(['Row1', 'Row2'], dtype='<U4')
"""
data[0,1:]
"""
array(['Col1', 'Col2'], dtype='<U4')
"""

ويمكنك أيضاً أن تقوم بتغيير نمط البيانات الخاص بالقيم إذا أردت بالشكل:

import numpy as np
data = np.array([
  ['', 'Col1', 'Col2'], 
  ['Row1', 1, 2], 
  ['Row2', 3, 4]
])
import pandas as pd
pd.DataFrame(data=np.int_(data[1:,1:]),    # القيم
              index=data[1:,0],    # العمودالأول كفهرس
              columns=data[0,1:])  # الصف الأول كأسماء الأعمدة
"""
 	Col1 	Col2
Row1 	1 	2
Row2 	3 	4
"""

 

تم التعديل في بواسطة Ali Haidar Ahmad
  • 0
نشر

عند إنشاء DataFrame من مصفوفة تحتاج لتحديد ال data و ال index و ال columns كالتالي

 pd.DataFrame(data=data[1:,1:],    # القيم
              index=data[1:,0],    # العمود الأول 
              columns=data[0,1:])  # الصف الأول

ولكن ستلاحظ أن المصفوفة تحتوي على بيانات من نوع string ونوع integer لذلك تقوم numpy بتوحيد الأنواع ل string ونحن لا نريد ذلك وسنحول الأرقام ل integer مرة أخرى كالتالي 

بدلاً من 

data[1:,1:]

نستخدم 

np.int_(data[1:,1:])

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...