2017-10-04 1 views
0

I番号に基づいて2つの列をソートしソート二つの列タイプパンダのPythonに基づい

  1. 881 X
  2. 497 Y X
  3. 2400 Y
  4. 2556 Zを入力する必要
  5. 1748 x
  6. 443y
  7. 217 Z
  8. 1024 Y

現在のコードスニペット:このタイプ(X、Y、Z)で

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

は、パンダを使ってPythonを個々のカテゴリを分類する方法その後、ソートされましたか?

  1. 881 X
  2. 1784 X
  3. 2400 X
  4. 433 Y
  5. 497 Z
  6. 1024×
  7. 2559 Y
  8. 217 Z:成果期待

  9. 2556 Y
+0

必要が 'DATA2 = data1.sort_values([ 'Result7d'、 'C​​OL1']、昇順=真)'? – jezrael

+0

エラーでプロンプトが表示されます。AttributeError: 'DataFrame'オブジェクトに 'sort_values'属性がありません。 – Nayeem

+0

古いバージョンのpandasを使用してアップグレードします。 – 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

関連する問題