Распределить время по миллисекундам для плавной кривой - PullRequest
2 голосов
/ 29 мая 2019

У меня есть датафрейм, в котором один столбец содержит дату и время. Дата и время до секунд. Мне нужно автоматически добавлять миллисекунды к секундам, поскольку у меня есть несколько значений для каждого второго значения. Например, 21 февраля 2019 года, 15:50:41, у меня есть эта отметка времени 35 раз. Если я смогу добавить миллисекунды к этой отметке времени, поэтому, когда я буду строить кривую, она будет плавной. и каждое второе значение имеет разное количество экземпляров.

1 Ответ

2 голосов
/ 29 мая 2019

Вы можете попробовать groupby изменить дату

df = pd.DataFrame({'date': pd.to_datetime(['Feb 21, 2019 3:50:41 PM']*35 + 
                                          ['Feb 21, 2019 3:50:42 PM']*100),
                        'val': np.linspace(0,1,135)})

def time_shift(s):
    count = len(s)
    deltas = pd.timedelta_range('0ms', '1000ms',
                                periods=count+1, closed='left')
    return s + deltas

df.date = df.groupby(['date']).date.transform(time_shift)

plt.plot(df.date, df.val)

График исходного кадра данных:

![enter image description here

График послемасштабирование в миллисекундах:

![enter image description here

Кадр данных после сдвига:

df.tail(5)

+-----+-------------------------------+----------+
|     | date                          |      val |
|-----+-------------------------------+----------|
| 130 | 2019-02-21 15:50:42.959595959 | 0.970149 |
| 131 | 2019-02-21 15:50:42.969696969 | 0.977612 |
| 132 | 2019-02-21 15:50:42.979797979 | 0.985075 |
| 133 | 2019-02-21 15:50:42.989898989 | 0.992537 |
| 134 | 2019-02-21 15:50:43           | 1        |
+-----+-------------------------------+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...