2017-06-08 10 views
0

私はcsvファイルから作成したデータフレームをソートすることから始めて、Pythonのパンダに取り組んでいます。私は最終的に値を比較するためにforループを作成しようとしています。しかし、新しい値を印刷すると、ソートされたバージョンの代わりに元のデータフレームが使用されます。どのように私は適切に以下を行うのですか?データフレームのソート

オリジナルCSVデータ:

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 

コード:

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

何に基づいてですか?リンゴはオリジナルのデータフレームと新しいデータフレームの最初にあるべきです。 –

+0

古い果物や新しい果物を印刷すると、AppleとCherryの以前のdf値がわかります。私はどちらもAppleだと思っています。そうすれば、x値をインクリメントして古い果物と新しい果実を比較することができます。それらが同じであれば、値を他のものに置き換えます。たとえば、Apple = fruit1、Cherry = fruit 2 ...などです。私は実際の実行のためにプロキシのログデータでこれをやっていますが、テスト用にこの小さなcsvファイルを使っています。 –

答えて

1

私はあなたがまだxの古いインデックスにアクセスしていると信じています。ソートした後、これを挿入してインデックスを再作成してください:

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

完了!ありがとう!!! –

関連する問題