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

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

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

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)


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

Ответы:

32.540000000000006
32.120000000000005
32.5525
29.38
29.286
28.884
30.512
29.648
29.59
30.95
31.22
31.4
29.69666666666667
29.473333333333333
29.634999999999998
29.356666666666666
29.7825
28.15
26.9275
27.375