如何基于列值扩展数据框?

时间:2020-03-10 14:41:32

标签: python-3.x pandas dataframe

我有一个数据框:

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。

我发现该方法已重新采样,但似乎只能用于日期时间列。

因此,作为输出,我希望这样:

enter image description here

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用 result.AssertEqualProperties(CreateEntity, ignoreList.ToArray()); 创建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")

答案 1 :(得分:1)

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)