我有列为的dataframe
[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']我想对列进行排序,但只对“Product 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']怎么做。
发布于 2017-01-12 03:45:47
我认为您需要强制转换dates列to_datetime、sort_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]https://stackoverflow.com/questions/41599368
复制相似问题