Сообщение Re[2]: Давайте сравним от 15.01.2020 19:35
Изменено 15.01.2020 19:44 Буравчик
Re[2]: Давайте сравним
Здравствуйте, Ватакуси, Вы писали:
В>"Плохой питон" печатает отсутствующие данные из поступающего через stdin файла(см. http://files.rsdn.org/315/ts1.txt ):
Не понравилось, что используются циклы, а также сторонние библиотеки. Можно обойтись без них. Поэтому еще вариант на питон:
В>"Плохой питон" печатает отсутствующие данные из поступающего через stdin файла(см. http://files.rsdn.org/315/ts1.txt ):
Не понравилось, что используются циклы, а также сторонние библиотеки. Можно обойтись без них. Поэтому еще вариант на питон:
import sys
from itertools import islice
from typing import List
import numpy as np
import pandas as pd
def calc_missing(lines: List[str]) -> pd.Series:
# формируем dataset из строк
data = [line.split('\t') for line in lines]
df = pd.DataFrame(data, columns=['date', 'value'])
# запоминаем индексы missing-строк для последующего отбора
missings_indexes = df.value.str.startswith('Missing_')
# интерполяция
df.loc[missings_indexes, 'value'] = np.nan
df['value'] = df.value.astype(float)
df['date'] = pd.to_datetime(df.date)
df = df.set_index('date').interpolate(method="time", limit_direction="both").reset_index()
return df.value.values[missings_indexes]
def main():
count = int(sys.stdin.readline())
lines = list(islice(sys.stdin, count))
missing = calc_missing(lines)
print(missing)
if __name__ == '__main__':
main()
Re[2]: Давайте сравним
Здравствуйте, Ватакуси, Вы писали:
В>"Плохой питон" печатает отсутствующие данные из поступающего через stdin файла(см. http://files.rsdn.org/315/ts1.txt ):
Не понравилось, что используются циклы, а также сторонние библиотеки. Можно обойтись без них. Поэтому еще вариант на питон:
В>"Плохой питон" печатает отсутствующие данные из поступающего через stdin файла(см. http://files.rsdn.org/315/ts1.txt ):
Не понравилось, что используются циклы, а также сторонние библиотеки. Можно обойтись без них. Поэтому еще вариант на питон:
import sys
from itertools import islice
from typing import List
import numpy as np
import pandas as pd
def calc_missing(lines: List[str]) -> np.ndarray:
# формируем dataset из строк
data = [line.split('\t') for line in lines]
df = pd.DataFrame(data, columns=['date', 'value'])
# запоминаем индексы missing-строк для последующего отбора
missings_indexes = df.value.str.startswith('Missing_')
# интерполяция
df.loc[missings_indexes, 'value'] = np.nan
df['value'] = df.value.astype(float)
df['date'] = pd.to_datetime(df.date)
df = df.set_index('date').interpolate(method="time", limit_direction="both").reset_index()
return df.value.values[missings_indexes]
def main():
count = int(sys.stdin.readline())
lines = list(islice(sys.stdin, count))
missing = calc_missing(lines)
print(missing)
if __name__ == '__main__':
main()