2017-06-08 121 views
0

我正在研究Python熊猫,从排序我从csv文件创建的数据框开始。我试图最终创建一个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

当我印刷新旧水果时,它给了我以前苹果和樱桃的df值。我期待着他们都是苹果。这样我就可以合并递增x值,以便我可以比较新旧水果。如果它们是相同的,我用其他值替换值。例如:Apple = fruit1,Cherry = fruit 2 ...等。我正在使用实际运行的代理日志数据执行此操作,但即时通讯使用此小型csv文件进行测试。 –

回答

1

我相信你还在访问x的旧索引。排序后,将其插入到重新索引中:

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

完美!谢谢!!! –