如何使用Python对CSV列文件进行排序

时间:2016-10-26 11:06:09

标签: python python-3.x csv

我真的需要你的帮助: 我正在附加一个Excel文件 - 并尝试以正确的方式对其第二列(" Time")进行排序(考虑秒数)。 我很尴尬地承认我已经浪费了多少时间......

PAPER   TIME    ACTION  PRICE   AMOUNT

1026    01/12/2013 9:03 BID 124 84,888

1026    18/04/2013 9:01 BID 120.5   14,888

1026    19/01/2013 9:02 BID 121 24,888

1026    21/04/2013 9:05 BID 122 44,888

1026    20/04/2013 9:04 BID 121.5   34,888

1026    15/10/2013 9:06 BID 123.5   74,888

1026    17/04/2013 9:00 BID 120 4,888

1026    22/04/2013 9:07 BID 122.5   54,888

1026    27/04/2013 9:08 BID 123 64,888

此数据存储在名为yaniv123.csv的CSV文件中,列位于A到E之间(仅10行)。如何导入此文件并以正确的方式对B列(TIME)进行排序。 请帮助我:-) 非常感谢!

1 个答案:

答案 0 :(得分:2)

正如@Edwin van Mierlo所提到的,标题需要调整。您可以使用逗号分隔,但需要确保删除金额逗号。如果没有,那么请改用分号:

PAPER; TIME; ACTION;价格; AMOUNT

1026; 01/12/2013 9:03; BID; 124; 84,888

1026; 18/04/2013 9:01; BID; 120.5; 14,888

1026; 19/01/2013 9:02; BID; 121; 24,888

1026; 21/04/2013 9:05; BID; 122; 44,888

1026; 20/04/2013 9:04; BID; 121.5; 34,888

1026; 15/10/2013 9:06; BID; 123.5; 74,888

1026; 17/04/2013 9:00; BID; 120; 4,888

1026; 22/04/2013 9:07; BID; 122.5; 54,688

1026; 27/04/2013 9:08; BID; 123; 64,888

但是如果一切都正确调整,那么你可以使用python panda库。

import pandas as pd    
df = pd.read_csv('sample.csv', parse_dates=True, delimiter=";")
df['TIME'] = pd.to_datetime(df.TIME)
print(df.head())
print(df.sort('TIME'))

输出应为: 纸张时间行动价格金额

1026 01/12/2013 9:03 BID 124.0 84,888

1026 15/10/2013 9:06 BID 123.5 74,888

1026 17/04/2013 9:00 BID 120.0 4,888

1026 18/04/2013 9:01 BID 120.5 14,888

1026 19/01/2013 9:02 BID 121.0 24,888

1026 20/04/2013 9:04 BID 121.5 34,888

1026 21/04/2013 9:05 BID 122.0 44,888

1026 22/04/2013 9:07 BID 122.5 54,688

1026 27/04/2013 9:08 BID 123.0 64,888