2017-10-04 69 views
0

我需要根据数两列进行排序并键入排序两列

  1. 881 X
  2. 497Ÿ
  3. 2400 X
  4. 2559Ÿ
  5. 2556ž
  6. 1748 x
  7. 443 y
  8. 217ž
  9. 1024ÿ

当前代码段:

import pandas as pd 
    data1 = pd.read_csv('data/extracted.csv') 
    data2 = data1.sort(['Result7d'], ascending=True) 
    data2.to_csv('data/sorted.csv') 

与这种类型的(X,Y,Z)被排序,然后如何使用熊猫,Python的排序个别类别?

预期结果:

  1. 881 X
  2. 1784 X
  3. 2400 X
  4. 433ý
  5. 497ž
  6. 1024×
  7. 2559ÿ
  8. 217ž
  9. 2556Ÿ
+0

需要用'数据2 = data1.sort_values([ 'Result7d', 'COL1'],升= TRUE)'? – jezrael

+0

提示出错:AttributeError:'DataFrame'对象没有属性'sort_values' – Nayeem

+0

然后使用一些老版本的熊猫,更好的升级。 – jezrael

回答

1

这可能会实现:

import pandas as pd 
data1 = pd.read_csv('data/extracted.csv') 
#data2 = data1.sort(['Result7d'], ascending=True) 
# Use sort_values instead 
data1['filenumber'] = data['file'].apply(lambda x: int(x.split('.')[0])) 
data2 = data1.sort_values(by=['type', 'filenumber']) 
del data2['filenumber'] 
data2.to_csv('data/sorted.csv') 
+0

这两列正在排序,但第一列再次根据起始编号进行排序,如1784,2400,881 ... – Nayeem

+0

您的第一列读取为字符串。将其转换为数字类型字段。 – ShreyasG

+0

我的文件扩展名也是在那个数字后面 – Nayeem