2017-06-08 2 views
0

Ich arbeite an Python-Pandas, beginnend mit dem Sortieren eines Datenrahmens, den ich aus einer CSV-Datei erstellt habe. Ich versuche schließlich eine for-Schleife zu erstellen, die Werte verwendet, um zu vergleichen. Wenn ich die neuen Werte jedoch drucke, verwenden sie den ursprünglichen Datenrahmen statt der sortierten Version. Wie mache ich das richtig?Dataframe Sortierung

Original-CSV-Daten:

date   fruit  quantity 
4/5/2014 13:34 Apples  73 
4/5/2014 3:41 Cherries 85 
4/6/2014 12:46 Pears  14 
4/8/2014 8:59 Oranges  52 
4/10/2014 2:07 Apples  152 
4/10/2014 18:10 Bananas  23 
4/10/2014 2:40 Strawberries 98 

Code:

import pandas as pd 
import numpy 

df = pd.read_csv('example2.csv', header=0, dtype='unicode') 
df_count = df['fruit'].value_counts() 
x = 0 #starting my counter values or position in the column 
df.sort_values(['fruit'], ascending=True, inplace=True) #sorting the column 
fruit 
print(df) 
old_fruit = df.fruit[x] 
new_fruit = df.fruit[x+1] 
print(old_fruit) 
print(new_fruit) 
+0

Basiert auf was? Äpfel sollten zuerst im ursprünglichen Datenrahmen und im neuen Datenrahmen sein. –

+0

Wenn ich alte und neue Früchte drucke, gibt es mir die vorherigen df-Werte von Apple und Cherry. Ich erwarte, dass beide Apple sind. Auf diese Weise kann ich den inkrementellen x-Wert integrieren, so dass ich alte und neue Früchte vergleichen kann. Wenn sie gleich sind, ersetze ich die Werte durch etwas anderes. Also zum Beispiel: Apfel = Obst1, Kirsche = Obst 2 ... usw. Ich mache das mit Proxy-Log-Daten für den echten Lauf, aber ich verwende diese kleine CSV-Datei für Testzwecke. –

Antwort

1

Ich glaube, Sie sind immer noch den alten Index von x erreichbar. Nachdem Sie sortiert haben, fügen Sie dieses ein, um neu zu indizieren:

df.reset_index(drop=True, inplace=True) 
+1

PERFEKT !!! Vielen Dank!!! –

Verwandte Themen