現在我有一個.csv文件,帶有一列時間,例如「20140203 00:00:03.132」,我怎樣纔能有效地刪除秒部分(「:03.132」)?數據量很大,我試着用sed預處理數據,但速度太慢了!如何使用熊貓解析CSV文件?
我現在正在嘗試解析熊貓中的.csv文件。無論如何,我可以有效地處理這個問題嗎?熊貓以外的方法也是受歡迎的!
現在我有一個.csv文件,帶有一列時間,例如「20140203 00:00:03.132」,我怎樣纔能有效地刪除秒部分(「:03.132」)?數據量很大,我試着用sed預處理數據,但速度太慢了!如何使用熊貓解析CSV文件?
我現在正在嘗試解析熊貓中的.csv文件。無論如何,我可以有效地處理這個問題嗎?熊貓以外的方法也是受歡迎的!
有解析時間戳方便的庫:datetime:
import datetime
x = '20140203 00:00:03.132'
timestamp = datetime.datetime.strptime(x, '%Y%m%d %H:%M:%S.%f')
print datetime.datetime.strftime(timestamp, '%Y%m%d %H:%M') # 20140203 00:00
還是因爲它是一個巨大的數據量有點慢,你可以在第一:
從右邊分裂,然後在第一個結果列表中的元素:
print x.rsplit(':', 1)[0] # 20140203 00:00
看看該date_parser
參數pandas.read_csv()
。沿此線的東西應該工作:
import dateutil
from pandas import read_csv
def my_date_parser(seq):
return [dateutil.parser.parse(s[:14]) for s in seq]
csv = read_csv('file.csv', parse_dates=[3], date_parser=my_date_parser)
你可能還需要提供參數parse_dates
敲定包含日期字符串列(一個或多個),例如上面指定第3列作爲日期列。
如果您沒有羣集來執行操作,那麼您嘗試的任何操作都會變慢,因爲它將全部在一臺機器上完成 –
熊貓可能不是最快的方式...... afaik,它只是用來標準的csv模塊,帶有額外的處理,包括試圖強制所有數據類型;字符串操作速度更快,所以使用迭代式csv閱讀器會更快。我們在談論多少數據? –