

X={x1,x2,x3,x4,x5}  
Y={y1,y2,y3,y4,y5}  
というseriesがあります．  
このデータはx1とy1，x2とy2というようにそれぞれ対応していて，この組み合わせを変えずにXの値で順番を昇順に入れ替えたいのですがどうすればいいでしょうか？


CC BY-SA 3.0
2017-10-20T05:31:10.817
38894
2017-10-20T06:26:49.470
2017-10-20T05:52:44.240
25518
25518
question
python
numpyでのデータの入れ替え


seriesという表現から、Pandasの話だと仮定して回答します。

[code]

    >>> import pandas as pd
    >>> X = [1,5,2,3,4]
    >>> Y = [9,8,6,5,7]
    >>> df = pd.DataFrame({'X':X,'Y':Y})
    >>> df
       X  Y
    0  1  9
    1  5  8
    2  2  6
    3  3  5
    4  4  7
    >>> df.sort_values(by='X')
       X  Y
    0  1  9
    2  2  6
    3  3  5
    4  4  7
    1  5  8
    
[/code]

Pandas等使わずにpython標準の機能のみで実装する場合は以下のように書けます

[code]

    >>> X2, Y2 = zip(*sorted(zip(X,Y)))
    >>> X2
    (1, 2, 3, 4, 5)
    >>> Y2
    (9, 6, 5, 7, 8)
    
[/code]


CC BY-SA 3.0
2017-10-20T06:26:49.470
38897
2017-10-20T06:26:49.470
806
38894
answer