Как расширить фрейм данных на основе значений столбца? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть фрейм данных:

enter image description here

utc  arc_time_s tec_tecu    elevation_deg   lat_e_deg   lon_e_deg
01.01.2018 01:19    54  3.856   17.35   57.44   25.02
01.01.2018 01:19    53  4.021   17.29   57.47   25.03
01.01.2018 01:19    52  4.029   17.22   57.51   25.05
01.01.2018 01:19    51  4.015   17.15   57.54   25.07
01.01.2018 01:19    50  3.997   17.08   57.57   25.09

Мне нужно расширить фрейм данных на основе столбца lat_e_deg, чтобы все значения имели десятичную шкалу 2.

Я нашел метод resample, но кажется, что можно использовать только для даты и времени colomn.

Так что в качестве вывода я хочу иметь такой:

enter image description here

Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 10 марта 2020
import pandas as pd
import numpy as np

# reconstruct part of your DataFrame for testing purposes:
df = pd.DataFrame([[17.35, 57.44], [17.29, 57.47], [17.22, 57.51]], 
                 columns = ['elevation_deg', 'lat_e_deg'])

# create a Series of the desired stepwise values:
lat_e_deg_expanded = pd.Series(np.arange(start = min(df['lat_e_deg']), 
                                         stop = max(df['lat_e_deg']), 
                                         step = 0.01), 
                               name = 'lat_e_deg')

# merge the expanded series with the original DataFrame and sort:
df_expanded = pd.merge(df, lat_e_deg_expanded, 
                       on = 'lat_e_deg', 
                       how = 'outer')
df_expanded.sort_values(by = 'lat_e_deg', inplace = True)
1 голос
/ 10 марта 2020

Вы можете создать pd.Series с помощью step = 0.01 и затем присоединиться к исходному фрейму данных.

Пример кода при условии, что df - это фрейм данных с пропущенными десятичными значениями:

ts = pd.Series(np.arange(start = 57.44, stop = 57.57, step=0.01), name = "t")
df = pd.DataFrame({'t': [57.44, 57.47, 57.57]})

df2 = pd.merge(ts, df, how = "left").sort_values("t")

Результат:

        t
0   57.44
1   57.45
2   57.46
3   57.47
4   57.48
5   57.49
6   57.50
7   57.51
8   57.52
9   57.53
10  57.54
11  57.55
12  57.56
13  57.57
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...