2017-05-01 1 views
1

je la série Pandas suivante appelée Fruits:inverse une série de listes

Out[33]: 
Apples 
0 [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, ... 
1 [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, ... 
2 [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, ... 
3       [0.0, 1.0, 2.0, 3.0, 4.0] 
4 [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, ... 
5 [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, ... 
6 [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, ... 
7       [0.0, 1.0, 2.0, 3.0, 4.0] 
8 [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, ... 
9    [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] 
dtype: object 

Je veux inverser chaque ligne (horizontale). J'utilise le code Fruits [:: - 1] mais la sortie est l'inverse de l'index Apples (la colonne). Quelques idées pour inverser la série de séries?

+0

Avez-vous essayé d'utiliser une boucle? – Pythogen

Répondre

0

Il semble que vous avez besoin str[::-1]:

Fruits = pd.Series(
[[0, 1, 2, 3, 4], 
[0, 1, 2, 3, 4], 
[0, 1, 2], 
[0, 1, 2, 3, 4], 
[0, 1]]).rename_axis('Apples') 
print (Fruits) 
Apples 
0 [0, 1, 2, 3, 4] 
1 [0, 1, 2, 3, 4] 
2   [0, 1, 2] 
3 [0, 1, 2, 3, 4] 
4    [0, 1] 
dtype: object 

print(Fruits.str[::-1]) 
Apples 
0 [4, 3, 2, 1, 0] 
1 [4, 3, 2, 1, 0] 
2   [2, 1, 0] 
3 [4, 3, 2, 1, 0] 
4    [1, 0] 
dtype: object 
+0

Ca marche! Merci –

+0

Glad peut aider, belle journée! – jezrael

0

Comme ça?

public void foobar() { 
     int[][] data = new int[][] { 
       { 1, 2, 3, 4, 5 }, 
       { 1, 2, 3, 4, 5 }, 
       { 1, 2, 3, 4, 5 }, 
       { 1, 2, 3, 4, 5 }, 
       { 1, 2, 3, 4, 5 } 
     }; 

     loop(data); 

     System.out.println("=>"); 

     loopReverse(data); 
    } 

    public void loop(int[][] data) { 
     for(int i=0; i<data.length; i++) { 
      System.out.print(i+"\t"); 
      for(int j=0; j<data[i].length; j++) { 
       System.out.print("["+data[i][j] + "] "); 
      } 
      System.out.println(); 
     } 
    } 

    public void loopReverse(int[][] data) { 
     for(int i=data.length-1; i >= 0; i--) { 
      System.out.print(i+"\t"); 
      for(int j=data[i].length-1; j >= 0; j--) { 
       System.out.print("["+data[i][j] + "] "); 
      } 
      System.out.println(); 
     } 
    } 

Vous obtiendrez:

0 [1] [2] [3] [4] [5] 
1 [1] [2] [3] [4] [5] 
2 [1] [2] [3] [4] [5] 
3 [1] [2] [3] [4] [5] 
4 [1] [2] [3] [4] [5] 
=> 
4 [5] [4] [3] [2] [1] 
3 [5] [4] [3] [2] [1] 
2 [5] [4] [3] [2] [1] 
1 [5] [4] [3] [2] [1] 
0 [5] [4] [3] [2] [1] 
+0

Est presque ce que je veux. Cependant j'utilise python, utilisez-vous java? –

0
s = pd.Series({0: [0, 1, 2, 3, 4], 
1: [0, 1, 2, 3, 4], 
2: [0, 1, 2, 3, 4], 
3: [0, 1, 2, 3, 4], 
4: [0, 1, 2, 3, 4]}) 

s.index.name='Apples' 

print(s) 
Apples 
0 [0, 1, 2, 3, 4] 
1 [0, 1, 2, 3, 4] 
2 [0, 1, 2, 3, 4] 
3 [0, 1, 2, 3, 4] 
4 [0, 1, 2, 3, 4] 
dtype: object 

# use apply function to reverse the values row by row. 
s.apply(lambda x: x[::-1]) 
Out[850]: 
Apples 
0 [4, 3, 2, 1, 0] 
1 [4, 3, 2, 1, 0] 
2 [4, 3, 2, 1, 0] 
3 [4, 3, 2, 1, 0] 
4 [4, 3, 2, 1, 0] 
dtype: object