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

تحويل الفهرس index إلى عمود بداخل dataframe في pandas-

Mohamed Elnemr

السؤال

لدي بيانات على الشكل التالي:

df=
       col1       col2
 0  384444683      593  
 1  384444684      594 
 2  384444686      596  

وأريد تحويلها الى الشكل التالي بحيث أقوم بتحويل ال index الى عمود باسم index:

df=
   index    col1        col2
 0  0     384444683      593  
 1  1     384444684      594 
 2  2     384444686      596 

كيف يمكنني فعل هذا؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

كما أشار أحمد. وفي حالة كان لدينا مستويين للفهرس أي حالة MultiIndex:

import pandas as pd
import numpy as np
index = pd.MultiIndex.from_product([['TX', 'FL', 'CA'], 
                                    ['North', 'South']], 
                                   names=['State', 'Direction'])
df = pd.DataFrame(index=index, 
                  data=np.random.randint(0, 10, (6,4)), 
                  columns=list('abcd'))
"""
                 a 	b 	c 	d
State 	Direction 				
TX 	    North 	5 	7 	1 	0
        South 	1 	5 	7 	4
FL 	    North 	2 	8 	1 	7
        South   5 	9 	4 	0
CA 	    North 	0 	8 	9 	0
        South   5 	7 	9 	4
"""
df.reset_index()
"""
    State 	Direction 	a 	b 	c 	d
0 	TX 	North 	      6 	6 	2 	5
1 	TX 	South       	9 	1 	0 	4
2 	FL 	North       	2 	6 	1 	4
3 	FL 	South       	6 	7 	6 	3
4 	CA 	North       	3 	3 	5 	8
5 	CA 	South 	      7 	3 	8 	1
"""
"""
#level استخدم المعامل
للتحكم في مستويات الفهرس التي يتم تحويلها إلى أعمدة. إذا لم تكن هناك أسماء مستويات ، يمكنك الرجوع إلى كل مستوى من خلال موقعه الصحيح ، والذي يبدأ عند 0 من الخارج. يمكنك استخدام قيمة عددية هنا أو قائمة بجميع الفهارس التي ترغب في إعادة تعيينها. 
"""
df.reset_index(level='State') # نفسها  df.reset_index(level=0)
"""
        State 	a 	b 	c 	d
Direction 					
North 	TX 	1 	4 	2 	0
South 	TX 	1 	2 	8 	2
North 	FL 	8 	1 	9 	1
South 	FL 	1 	9 	6 	1
North 	CA 	9 	5 	5 	2
South 	CA 	3 	4 	6 	0
"""
"""
في بعض الحالات  عندما تريد الاحتفاظ بالفهرس وتحويله إلى عمود ، يمكنك القيام بما يلي
"""
# من أجل مستوى واحد
df.assign(State=df.index.get_level_values('State'))
"""
          	a 	b 	c 	d 	State
State Direction 					
TX 	North 	2 	0 	3 	6 	TX
    South 	2 	1 	0 	0 	TX
FL 	North 	1 	7 	4 	4 	FL
    South 	1 	2 	7 	9 	FL
CA 	North 	0 	0 	9 	8 	CA
    South 	8 	8 	8 	7 	CA
"""
# من أجل كل المستويات
df.assign(**df.index.to_frame())
"""
             a 	b 	c 	d 	State 	Direction
State Direction 						
TX 	North 	8 	7 	6 	9 	TX 	    North
    South 	6 	3 	1 	3 	TX    	South
FL 	North 	1 	9 	2 	8 	FL    	North
    South 	4 	4 	1 	7 	FL    	South
CA 	North 	8 	4 	0 	7 	CA    	North
    South 	9 	8 	5 	0 	CA    	South
"""

وفي الحالة العادية يمكنك استخدام الدالة insert أيضاً:

import pandas as pd
df = pd.DataFrame({'Roll Number': ['20CSE29', '20CSE49'],
				'Name': ['Amelia', 'Sam'],
				'Subject': ['Physics', 'Physics']})
df
"""
    Roll Number 	Name 	Subject
0 	20CSE29   	Amelia 	Physics
1 	20CSE49   	Sam 	Physics
"""
#insert استخدام الدالة 
df.insert( 0, column="new",value = df.index.values)
df
"""
  new 	Roll Number 	Name 	Subject
0 	0 	20CSE29 	Amelia 	Physics
1 	1 	20CSE49 	Sam 	Physics
"""

 

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك استخدام الدالة index لخلق عمود خاص بالفهرس index كالتالي:

df['index1'] = df.index

أو استخدام الدالة .reset_index كذلك:

df.reset_index(level=0, inplace=True)

أو استخدامها بالطريقة التالية وفي كل الطرق تكون النتيجة كالتالي:

df = df.rename_axis('index').reset_index()

print(df)

     index    col1       col2  
0       0  384444683      593
1       1  384444684      594
2       2  384444686      596

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...