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

تغيير ترتيب الأعمدة في pandas

Mohamed Elnemr

السؤال

لدي dataframe أقوم بانشاءها بالشكل التالي:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(10, 5))

وأريد أن أقوم باضافة عمود يقوم بحساب المتوسط كالتالي:

df['mean'] = df.mean(1)

اذا قمت بعرضها تظهر بالشكل التالي:

In [1]: df
Out[1]:
          0         1         2         3         4      mean
0  0.445598  0.173835  0.343415  0.682252  0.582616  0.445543
1  0.881592  0.696942  0.702232  0.696724  0.373551  0.670208
2  0.662527  0.955193  0.131016  0.609548  0.804694  0.632596
3  0.260919  0.783467  0.593433  0.033426  0.512019  0.436653
4  0.131842  0.799367  0.182828  0.683330  0.019485  0.363371
5  0.498784  0.873495  0.383811  0.699289  0.480447  0.587165
6  0.388771  0.395757  0.745237  0.628406  0.784473  0.588529
7  0.147986  0.459451  0.310961  0.706435  0.100914  0.345149
8  0.394947  0.863494  0.585030  0.565944  0.356561  0.553195
9  0.689260  0.865243  0.136481  0.386582  0.730399  0.561593

كيف أجعل المتوسط mean يصبح أول عمود بدل من كونه الخامس؟

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

Recommended Posts

  • 0

اذا قمت بعرض ترتيب الأعمدة يظهر بالترتيب التالي:


In [2]: cols = df.columns.tolist()

In [3]: cols
Out[3]: [0L, 1L, 2L, 3L, 4L, 'mean']

ويمكننا إعادة ترتيب الأعمدة كالتالي:

In [5]: cols = cols[-1:] + cols[:-1]  #اعادة ترتيب الأعمدة

In [6]: cols
Out[6]: ['mean', 0L, 1L, 2L, 3L, 4L]

لذا اذا قمنا بعرض الأعمدة بالترتيب الجديد تظهر بهذا الشكل:

In [9]: df = df[cols] 

In [10]: df
Out[10]:
       mean         0         1         2         3         4
0  0.445543  0.445598  0.173835  0.343415  0.682252  0.582616
1  0.670208  0.881592  0.696942  0.702232  0.696724  0.373551
2  0.632596  0.662527  0.955193  0.131016  0.609548  0.804694
3  0.436653  0.260919  0.783467  0.593433  0.033426  0.512019
4  0.363371  0.131842  0.799367  0.182828  0.683330  0.019485
5  0.587165  0.498784  0.873495  0.383811  0.699289  0.480447
6  0.588529  0.388771  0.395757  0.745237  0.628406  0.784473
7  0.345149  0.147986  0.459451  0.310961  0.706435  0.100914
8  0.553195  0.394947  0.863494  0.585030  0.565944  0.356561
9  0.561593  0.689260  0.865243  0.136481  0.386582  0.730399

 

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

  • 0

هناك دالة مخصصة لذلك وهي الدالة reindex التي تقوم بإعادة ترتيب الأعمدة بأي شكل تريده:

df.reindex(columns=['mean',0,1,2,3,4])

أو كحل ثاني:

df[['mean', 0,1,2,3,4]]

أو:

df[ ['mean'] + [ col for col in df.columns if col != 'mean' ] ]

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...