Сообщение 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 ):
Предлагайте как это сделать так же ненавязчиво в ц++ и иже с ним. Желательно, чтобы результат совпадал.
Ответы:
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
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