Как объединить несколько ленивых кадров, созданных из numpy ndarray и datetime.datetime в PolarsPython

Программы на Python
Ответить
Anonymous
 Как объединить несколько ленивых кадров, созданных из numpy ndarray и datetime.datetime в Polars

Сообщение Anonymous »

Я хочу преобразовать этот фрагмент кода pandas в код Polars, чтобы изучить поляры и посмотреть, смогу ли я получить выгоду от повышения скорости:

Код: Выделить всё

df_list = []
for datum in data:
df = pd.DataFrame()
temp_data = datum.data # list of tuples of numpy ndarray
df["A"] = temp_data[1].ravel().astype(np.float32)
df["B"] = temp_data[2].ravel().astype(np.float32)
df["C"] = datum.analDate # datetime.datetime
df["D"] = datum.validDate.replace(hour=int(datum.validityTime/100))
for name in names:
df[name] = temp_data[0].ravel().astype(np.float32)
df_list.append(df)
df = pd.concat(df_list)
df['E'] = df['C'].dt.hour
Идея состоит в том, что у меня есть много файлов в специальном двоичном формате. Прочитав их с помощью специальной программы чтения, я могу получить доступ к некоторым из этих полей, которые являются либо numpy ndarray, либо datetime.datetime. Я хочу перебирать файлы и сохранять их в список, а в конце лениво объединять их вместе.
Будучи новичком в Polars, я хочу понять:
  • Лучший способ создать рамку даты Polars из этой памяти без копирования данных, если это возможно.
  • Как бороться с «широковещательной передачей». Например, учитывая столбцы C и D. Нужно ли мне создавать список с одним экземпляром datetime.datetime и умножать его на длину других столбцов?
  • Как бороться с повторяющимися именами столбцов. Например, имя может дублироваться в именах. Как Polars с этим справляется?


Подробнее здесь: https://stackoverflow.com/questions/784 ... me-datetim
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»