2017-01-11 40 views
0

あるように私はは、それが

[u'Instructor Name', u'Product Name', u'Product Url', u' 2016.12.03', 
u' 2016.12.05', u' 2016.12.01', u' 2016.12.12', u' 2016.12.16', 
u'2016.12.15', u' 2016.12.13', u' 2016.12.10', u' 2016.12.06', 
u'2016.12.14',u'2016.12.08', u' 2016.12.07', u' 2016.12.18', 
u'2016.12.11', u' 2016.12.04', u'2016.12.09', u' 2016.12.02', u' 2016.12.17'] 

として列を持つデータフレームを持っている最初の3列を維持する列名によってデータフレームの並べ替え私が列をソートしたいが、唯一の「製品のURL」であること。私は出力が欲しい

[u'Instructor Name', u'Product Name', u'Product Url', 
     u' 2016.12.01', u' 2016.12.02', u' 2016.12.03', u' 2016.12.04', 
     u' 2016.12.05', u' 2016.12.06', u' 2016.12.07', u' 2016.12.08', 
     u' 2016.12.09', u' 2016.12.10', u' 2016.12.11', u' 2016.12.12', 
     u' 2016.12.13', u' 2016.12.14', u' 2016.12.15', u' 2016.12.16', 
     u' 2016.12.17', u' 2016.12.18', u' 2016.12.19'] 

どのようにそれを行うには。

+0

何を試しましたか? –

+0

また、なぜ列名として日付が表示されるのでしょうか?ハッシュはどこから来たのですか? –

答えて

1

は、私はあなたがdatesto_datetimesort_valuesとをキャストが必要だと思う必要dates使用date場合:

df.columns = df.columns[:3].tolist() + 
      (pd.to_datetime(df.columns[3:], format='%Y.%m.%d')).sort_values().date.tolist() 

サンプル:

cols = [u'Instructor Name', u'Product Name', u'Product Url', u' 2016.12.03', u' 2016.12.05', 
     u' 2016.12.01', u' 2016.12.12', u' 2016.12.16', u' 2016.12.15', u' 2016.12.13', 
     u' 2016.12.10', u' 2016.12.06', u'2016.12.14',u'2016.12.08', u' 2016.12.07', 
     u' 2016.12.18', u' 2016.12.11', u' 2016.12.04', u'2016.12.09', 
u' 2016.12.02', u' 2016.12.17'] 

df = pd.DataFrame(columns=cols) 
print (df) 
Empty DataFrame 
Columns: [Instructor Name, Product Name, Product Url, 
      2016.12.03, 2016.12.05, 2016.12.01, 2016.12.12, 2016.12.16, 2016.12.15, 
      2016.12.13, 2016.12.10, 2016.12.06, 2016.12.14, 2016.12.08, 2016.12.07, 
      2016.12.18, 2016.12.11, 2016.12.04, 2016.12.09, 2016.12.02, 2016.12.17] 

Index: [] 

[0 rows x 21 columns] 

df.columns = df.columns[:3].tolist() + 
      (pd.to_datetime(df.columns[3:], format='%Y.%m.%d')).sort_values().date.tolist() 

print (df) 
Empty DataFrame 
Columns: [Instructor Name, Product Name, Product Url, 
      2016-12-01, 2016-12-02, 2016-12-03, 2016-12-04, 2016-12-05, 2016-12-06, 
      2016-12-07, 2016-12-08, 2016-12-09, 2016-12-10, 2016-12-11, 2016-12-12, 
      2016-12-13, 2016-12-14, 2016-12-15, 2016-12-16, 2016-12-17, 2016-12-18] 
Index: [] 

[0 rows x 21 columns] 

そして

必要同じ形式で追加した場合 strftime

df.columns = df.columns[:3].tolist() + 
      (pd.to_datetime(df.columns[3:], format='%Y.%m.%d')).sort_values().strftime('%Y.%m.%d').tolist() 

print (df) 
Empty DataFrame 
Columns: [Instructor Name, Product Name, Product Url, 
      2016.12.01, 2016.12.02, 2016.12.03, 2016.12.04, 2016.12.05, 2016.12.06, 
      2016.12.07, 2016.12.08, 2016.12.09, 2016.12.10, 2016.12.11, 2016.12.12, 
      2016.12.13, 2016.12.14, 2016.12.15, 2016.12.16, 2016.12.17, 2016.12.18] 
Index: [] 

[0 rows x 21 columns]