Mohamed Elnemr نشر 5 سبتمبر 2021 أرسل تقرير نشر 5 سبتمبر 2021 لدي بيانات على الشكل التالي: 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 كيف يمكنني فعل هذا؟ 2 اقتباس
0 Ahmed Sharshar نشر 5 سبتمبر 2021 أرسل تقرير نشر 5 سبتمبر 2021 يمكنك استخدام الدالة 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 1 اقتباس
0 Ali Haidar Ahmad نشر 5 سبتمبر 2021 أرسل تقرير نشر 5 سبتمبر 2021 (معدل) كما أشار أحمد. وفي حالة كان لدينا مستويين للفهرس أي حالة 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 """ تم التعديل في 5 سبتمبر 2021 بواسطة Ali Haidar Ahmad اقتباس
السؤال
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
كيف يمكنني فعل هذا؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.