如果没有标题,如何对csv文件进行排序? 我的数据如下,我想按日期排序
14/09/2018 Manchester Manchester United Chelsea
06/09/2018 Manchester Manchester United Tottenham Hotspur
05/09/2018 Manchester Manchester United Liverpool
13/09/2018 Chelsea Chelsea Manchester United
10/09/2018 Chelsea Chelsea Tottenham Hotspur
09/09/2018 Chelsea Chelsea Liverpool
12/09/2018 Tottenham Tottenham Hotspur Manchester United
08/09/2018 Tottenham Tottenham Hotspur Chelsea
07/09/2018 Tottenham Tottenham Hotspur Liverpool
11/09/2018 Liverpool City Liverpool Manchester United
15/09/2018 Liverpool City Liverpool Chelsea
04/09/2018 Liverpool City Liverpool Tottenham Hotspur
答案 0 :(得分:0)
您可以为此使用熊猫:
import pandas as pd
from datetime import datetime
df = pd.read_csv('dummy.csv', names=['Date', 'City', 'Home', 'Away']) # read in csv with header assignment to columns
df['Date'] = pd.to_datetime(df.Date) #convert 'Dates' column to datetime
df = df.sort_values(by='Date').reset_index() # sort by date and reindex
输出:
Date City Home Away
0 2018-04-09 Liverpool City Liverpool Tottenham Hotspur
1 2018-05-09 Manchester Manchester United Liverpool
2 2018-06-09 Manchester Manchester United Tottenham Hotspur
3 2018-07-09 Tottenham Tottenham Hotspur Liverpool
4 2018-08-09 Tottenham Tottenham Hotspur Chelsea
5 2018-09-09 Chelsea Chelsea Liverpool
6 2018-09-13 Chelsea Chelsea Manchester United
7 2018-09-14 Manchester Manchester United Chelsea
8 2018-09-15 Liverpool City Liverpool Chelsea
9 2018-10-09 Chelsea Chelsea Tottenham Hotspur
10 2018-11-09 Liverpool City Liverpool Manchester United
11 2018-12-09 Tottenham Tottenham Hotspur Manchester United
答案 1 :(得分:0)
如果日期唯一,则可以打开文件并将其读入字典。如果没有,那么您将想要找到一个二级键进行排序。
def read_from_file(file_name):
data = {}
with open(file_name, 'r') as f:
for line in f.readlines():
datum = extract_data(line)
data[get_key(datum)] = datum
def sort(data):
return [data[key] for key in sort(data.iterkeys())]
在此示例中,您将要实现两种方法:extract_data()
将采用文件的一行(作为字符串)并将其放入要使用的表单中(类,字典或其他内容)和get_key
来提取您的唯一键(可以是您的日期或您的日期以及其他内容)。请注意,get_key
对于表中的每个元素必须是唯一的,因此应确保它是唯一的。否则,字典排序将无法按预期工作。