Преобразование временной метки в дату и время в кадре данных pandas [duplicate]

взгляните на мой код, он делает font size smaller на fit там, где есть

, но я думаю, что это не привело к хорошему опыту пользователя

var containerWidth = $("#ui-id-2").width();
var items = $(".quickSearchAutocomplete .ui-menu-item");
var fontSize = 16;

items.each(function(){
    //display value depend sometimes on your case you may make it block or inline-table instead of inline-block or whatever value that make the div take overflow width
    $(this).css({"whiteSpace":"nowrap","display":"inline-block"});
    while ($(this).width() > containerWidth){
         console.log("$(this).width()"+ $(this).width() + "containerWidth" + containerWidth)
         $(this).css("font-size", fontSize -= 0.5);
    }
});

надеюсь, что это поможет вам

23
задан tamasgal 19 January 2016 в 18:20
поделиться

3 ответа

Вы можете сделать это как шаг последующей обработки, используя to_datetime и передав arg unit='ms':

In [5]:
df['UNIXTIME'] = pd.to_datetime(df['UNIXTIME'], unit='ms')
df

Out[5]:
   RUN                UNIXTIME  VALUE
0    1 2015-11-10 13:05:02.320     10
1    2 2015-11-10 13:05:02.364     20
2    3 2015-11-10 13:05:22.364     42
25
ответ дан EdChum 17 August 2018 в 16:08
поделиться
  • 1
    Ах, я полностью пропустил этот параметр unit, спасибо, это мило! Я сделаю запрос на перенос, чтобы включить это в .read_csv тоже через parse_dates. – tamasgal 20 January 2016 в 07:09
  • 2
    Это может привести к неправильному времени из-за проблемы с часовым поясом. – Pengju Zhao 17 July 2017 в 12:19
  • 3
    @PengjuZhao вопрос OP не упоминает часовой пояс, так как ответ Теудимундо решает, что – EdChum 17 July 2017 в 12:20
  • 4
    Одно из предложений заключается в том, что, возможно, вы можете попытаться добавить ответ Теудимундо к вашему ответу. Это будет полезно для новичков вроде меня. – Pengju Zhao 18 July 2017 в 00:57
  • 5
    @PengjuZhao это плохая практика, чтобы cannibalize ответы других пользователей, что-то я не делаю, но некоторые другие. Я думаю, что это нормально для нескольких ответов, если они достаточно различны – EdChum 18 July 2017 в 10:20

Я придумал решение, которое я предполагаю:

convert = lambda x: datetime.datetime.fromtimestamp(float(x) / 1e3)

df = pd.read_csv(StringIO(data), parse_dates=['UNIXTIME'], date_parser=convert)

Я все еще не уверен, что это лучший вариант.

2
ответ дан tamasgal 17 August 2018 в 16:08
поделиться

Я использую решение @EdChum, но я добавляю управление часовым поясом:

df['UNIXTIME']=pd.DatetimeIndex(pd.to_datetime(pd['UNIXTIME'], unit='ms'))\
                 .tz_localize('UTC' )\
                 .tz_convert('America/New_York')

tz_localize указывает, что временную метку следует рассматривать как относящуюся к «UTC», тогда tz_convert фактически перемещается дата / время до правильного часового пояса (в данном случае `America / New_York ').

Обратите внимание, что он был преобразован в DatetimeIndex, потому что методы tz_ работают только с индексом серии. Так как Pandas 0.15 можно использовать .dt:

df['UNIXTIME']=pd.to_datetime(pd['UNIXTIME'], unit='ms')\
                 .dt.tz_localize('UTC' )\
                 .dt.tz_convert('America/New_York')
4
ответ дан Teudimundo 17 August 2018 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: