DataFrame列の順序を変更するにはどうすればよいですか?

この記事の翻訳元:DataFrame列の順序を変更する方法?

私は私を持っている必要があり、以下ではDataFramedf): 私は、次のしていますDataFramedf):

import numpy as np
import pandas as pd

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

割り当てによって 列を追加します。割り当てによって列を追加しました

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

どのようにI CAN Moveカラムmean他手つかずで列の順序を残しまずコラムアットザフロント、SET IT AS IEのには? どのようにバーでしょうmean最初の列に設定することについては、最上部に移動し、他の列の順序が変更されないまま?


#1階

参照:https : //stackoom.com/question/tAVR/ DataFrame列の順序を変更する方法


#2F

簡単な1つの方法は、列のリストをデータフレームに再割り当てし、必要に応じて再配置することです。 簡単な方法は、列リストを使用してデータフレームを再割り当てし、必要に応じて再配置することです

これはあなたが今持っているものです:これはあなたが今持っているものです

In [6]: df
Out[6]:
          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

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

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

中国の文構造とcolsしたい任意の方法で。 再編成されたcolsあなたが好きなように。 これは、最後の要素を最初の位置に移動した方法です。これは、最後の要素を最初の位置に移動した方法です

In [12]: cols = cols[-1:] + cols[:-1]

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

次に、データフレームを次のように並べ替えます。 次に、データフレームを次のように再配置します

In [16]: df = df[cols]  #    OR    df = df.ix[:, cols]

In [17]: df
Out[17]:
       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

#3階

どのように: どのよう

df.insert(0, 'mean', df.mean(1))

http://pandas.pydata.org/pandas-docs/stable/dsintro.html#column-selection-addition-deletion http://pandas.pydata.org/pandas-docs/stable/dsintro.html#column-selection -追加削除


#4F

前にすでにこの質問に答え私は使用をお勧めしますので、今、放棄されていreindex_axis:

df.reindex(sorted(df.columns), axis=1)

#5F

次のようなこともできます:次のような こともできます

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

あなたは列のリストを得ることができます:あなたは列のリストを得ることができます

cols = list(df.columns.values)

出力は以下を生成します:出力は以下を生成し ます:

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

...最初の関数にドロップする前に手動で再配置するのは簡単 です...


#6階

この関数を使用すると、データセット内のすべての変数をリストする必要がなくなり、いくつ かの変数を並べ替えることができます

def order(frame,var):
    if type(var) is str:
        var = [var] #let the command take a string or list
    varlist =[w for w in frame.columns if w not in var]
    frame = frame[var+varlist]
    return frame 

2つの引数を取ります。1つ目はデータセット、2つ目は前面に表示するデータセットの列です 。2つのパラメータがあります。1つ目はデータセット、2つ目は配置するパラメータです。データセットの最初の列。

したがって、私の場合、変数A1、A2、B1、B2、合計、および日付 を含む Frameというデータセットがあります。したがって、私の場合、変数A1、A2、 B1、B2、合計および日付。Totalを前面に表示したい場合は、次のことを行う必要があります 。Totalを最前面に表示したい場合は次の手順を実行するだけです

frame = order(frame,['Total'])

TotalとDateを前面 に表示したい場合は、次のようにします。「total」と「date」を最初に配置したい場合は、次のようにします。

frame = order(frame,['Total','Date'])

編集: 編集:

これを使用するもう1つの便利な方法は、見慣れないテーブルがあり、VAR1、VAR2などの特定の用語が含まれている変数を探している場合などです。 この関数の別の便利な使用方法は次のとおりです。この方法は、慣れていないテーブルがあり、VAR1、VAR2などの特定の用語を含む変数を探している場合は、次のようにすることができます。

frame = order(frame,[v for v in frame.columns if "VAR" in v])
元の記事を0件公開 75 件を賞賛 56万回の閲覧+

おすすめ

転載: blog.csdn.net/w36680130/article/details/105467232