Информация об изменениях

Сообщение Re: Давайте сравним от 15.01.2020 16:05

Изменено 15.01.2020 16:08 Ватакуси

Re: Давайте сравним
"Плохой питон" печатает отсутствующие данные из поступающего через stdin файла(см. http://files.rsdn.org/315/ts1.txt):
import pandas as pd
import numpy as np
from click._compat import raw_input
from dateutil import parser


def calcMissing(readings:list) -> None:
    dates = []
    values = []
    missings = []
    for r in readings:
        timeStamp, val = r.split("\t")
        timeStamp = parser.parse(timeStamp)
        if val.startswith("Missing_"):
            val = np.nan
            missings.append(len(values))
        else:
            val = float(val)
        values.append(val)
        dates.append(timeStamp)
        
    df = pd.DataFrame({"dates": dates, "values": values})
    df = df.set_index("dates")
    df.interpolate(method="time", inplace=True, limit_direction="both")
    
    
    for missIndex in missings:
        print(df["values"].values[missIndex]) 
        

if __name__ == '__main__':
    readings_count = int(raw_input().strip())

    readings = []

    for _ in range(readings_count):
        readings_item = raw_input()
        readings.append(readings_item)

    calcMissing(readings)


Предлагайте как это сделать так же ненавязчиво в ц++ и иже с ним. Желательно, чтобы результат совпадал.
Re: Давайте сравним
"Плохой питон" печатает отсутствующие данные из поступающего через stdin файла(см. http://files.rsdn.org/315/ts1.txt ):
import pandas as pd
import numpy as np
from click._compat import raw_input
from dateutil import parser


def calcMissing(readings:list) -> None:
    dates = []
    values = []
    missings = []
    for r in readings:
        timeStamp, val = r.split("\t")
        timeStamp = parser.parse(timeStamp)
        if val.startswith("Missing_"):
            val = np.nan
            missings.append(len(values))
        else:
            val = float(val)
        values.append(val)
        dates.append(timeStamp)
        
    df = pd.DataFrame({"dates": dates, "values": values})
    df = df.set_index("dates")
    df.interpolate(method="time", inplace=True, limit_direction="both")
    
    
    for missIndex in missings:
        print(df["values"].values[missIndex]) 
        

if __name__ == '__main__':
    readings_count = int(raw_input().strip())

    readings = []

    for _ in range(readings_count):
        readings_item = raw_input()
        readings.append(readings_item)

    calcMissing(readings)


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