Как остановить фоновый рисунок при нажатии следующей песни в ionic3

Как проанализировать CSV непосредственно в желаемом DataFrame:

Передавать спецификацию функции pandas.read_csv converters аргумент ключевого слова:

import pandas as pd
import datetime as DT
nfp = pd.read_csv("NFP.csv", 
                  sep=r'[\s,]',              # 1
                  header=None, skiprows=1,
                  converters={               # 2
                      0: lambda x: DT.datetime.strptime(x, '%Y%m%d'),  
                      1: lambda x: DT.time(*map(int, x.split(':')))},
                  names=['Date', 'Time', 'Actual', 'Consensus', 'Previous'])

print(nfp)

дает

        Date      Time  Actual  Consensus  Previous
0 2014-01-10  13:30:00   74000     196000    241000
1 2013-12-06  13:30:00  241000     180000    200000
2 2013-11-08  13:30:00  200000     125000    163000
3 2013-10-22  12:30:00  163000     180000    193000
4 2013-09-06  12:30:00  193000     180000    104000
5 2013-08-02  12:30:00  104000     184000    188000
6 2013-07-05  12:30:00  188000     165000    176000
7 2013-06-07  12:30:00  176000     170000    165000
8 2013-05-03  12:30:00  165000     145000    138000
9 2013-04-05  12:30:00  138000     200000    268000
  1. sep=r'[\s,]' сообщает read_csv разделить строки csv на шаблон регулярного выражения r'[\s,]' - пробел или запятую.
  2. converters ] указывает read_csv применять заданные функции к определенным столбцам. Ключи (например, 0 и 1) относятся к индексу столбца, а значения - это функции, которые будут применяться.

Как разбить DataFrame после выполнения csv_read

import pandas as pd
nfp = pd.read_csv("NFP.csv", parse_dates=[0], infer_datetime_format=True)
temp = pd.DatetimeIndex(nfp['DateTime'])
nfp['Date'] = temp.date
nfp['Time'] = temp.time
del nfp['DateTime']

print(nfp)

Что быстрее?

Это зависит от размера CSV. (Спасибо Джеффу за это указание.)

Для крошечных CSV синтаксический разбор CSV в нужную форму выполняется быстрее, чем с использованием DatetimeIndex после разбора с parse_dates=[0]:

def using_converter():
    nfp = pd.read_csv("NFP.csv", sep=r'[\s,]', header=None, skiprows=1,
                      converters={
                          0: lambda x: DT.datetime.strptime(x, '%Y%m%d'),
                          1: lambda x: DT.time(*map(int, x.split(':')))},
                      names=['Date', 'Time', 'Actual', 'Consensus', 'Previous'])
    return nfp

def using_index():
    nfp = pd.read_csv("NFP.csv", parse_dates=[0], infer_datetime_format=True)
    temp = pd.DatetimeIndex(nfp['DateTime'])
    nfp['Date'] = temp.date
    nfp['Time'] = temp.time
    del nfp['DateTime']
    return nfp

In [114]: %timeit using_index()
100 loops, best of 3: 1.71 ms per loop

In [115]: %timeit using_converter()
1000 loops, best of 3: 914 µs per loop

Однако для CSV всего несколько сотен строк или более, использование DatetimeIndex выполняется быстрее.

N = 20
filename = '/tmp/data'
content = '''\
DateTime,Actual,Consensus,Previous
20140110 13:30:00,74000,196000,241000
20131206 13:30:00,241000,180000,200000
20131108 13:30:00,200000,125000,163000
20131022 12:30:00,163000,180000,193000
20130906 12:30:00,193000,180000,104000
20130802 12:30:00,104000,184000,188000
20130705 12:30:00,188000,165000,176000
20130607 12:30:00,176000,170000,165000
20130503 12:30:00,165000,145000,138000
20130405 12:30:00,138000,200000,268000'''

def setup(n):
    header, remainder = content.split('\n', 1)
    with open(filename, 'w') as f:
        f.write('\n'.join([header]+[remainder]*n))

In [304]: setup(50)

In [305]: %timeit using_converter()
100 loops, best of 3: 9.78 ms per loop

In [306]: %timeit using_index()
100 loops, best of 3: 9.3 ms per loop

Где я могу найти эту информацию?

  1. Иногда вы можете найти примеры в Pandas Cookbook .
  2. Иногда поиск в Интернете или поиск Stackoverflow достаточен.
  3. Проведение выходных снегопадов ни с чем но чтение документации pandas наверняка поможет.
  4. Установите IPython . Он имеет завершение табуляции, и если вы наберете ? после функции, он даст вам docstring функции. Эти две функции действительно помогут вам быстро изучить объекты Python. Он также сообщает вам, в каком файле определена функция (если она определена в чистом Python) - что приводит меня к ...
  5. Чтение исходного кода

Просто продолжайте. Чем больше вы знаете, тем легче это получится.

Если вы дадите ему свой лучший снимок и до сих пор не можете найти ответ, отправьте вопрос в Stackoverflow. Вы, надеюсь, быстро получите ответ и поможете другим найти то же самое.

0
задан Vignesh Ram 13 July 2018 в 08:19
поделиться