Python 子集数据帧:从原始df中获取上一个值,但不在子集中
我有一个如下所示的数据帧:Python 子集数据帧:从原始df中获取上一个值,但不在子集中,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个如下所示的数据帧: A 2018-10-16 15:11:00 100 2018-10-16 15:11:07 101 2018-10-16 15:11:11 102 2018-10-16 15:11:12 101 2018-10-16 15:11:13 100 2018-10-16 15:11:17 110 2018-10-16 15:11:20 103 2018-10-16 15:
A
2018-10-16 15:11:00 100
2018-10-16 15:11:07 101
2018-10-16 15:11:11 102
2018-10-16 15:11:12 101
2018-10-16 15:11:13 100
2018-10-16 15:11:17 110
2018-10-16 15:11:20 103
2018-10-16 15:11:41 99
2018-10-16 15:11:54 107
A
2018-10-16 15:11:11 102
2018-10-16 15:11:20 103
2018-10-16 15:11:41 99
A New
2018-10-16 15:11:11 102 101
2018-10-16 15:11:20 103 110
2018-10-16 15:11:41 99 110
和一个子集数据帧,如下所示:
A
2018-10-16 15:11:00 100
2018-10-16 15:11:07 101
2018-10-16 15:11:11 102
2018-10-16 15:11:12 101
2018-10-16 15:11:13 100
2018-10-16 15:11:17 110
2018-10-16 15:11:20 103
2018-10-16 15:11:41 99
2018-10-16 15:11:54 107
A
2018-10-16 15:11:11 102
2018-10-16 15:11:20 103
2018-10-16 15:11:41 99
A New
2018-10-16 15:11:11 102 101
2018-10-16 15:11:20 103 110
2018-10-16 15:11:41 99 110
我需要将其转换为以下内容:
A
2018-10-16 15:11:00 100
2018-10-16 15:11:07 101
2018-10-16 15:11:11 102
2018-10-16 15:11:12 101
2018-10-16 15:11:13 100
2018-10-16 15:11:17 110
2018-10-16 15:11:20 103
2018-10-16 15:11:41 99
2018-10-16 15:11:54 107
A
2018-10-16 15:11:11 102
2018-10-16 15:11:20 103
2018-10-16 15:11:41 99
A New
2018-10-16 15:11:11 102 101
2018-10-16 15:11:20 103 110
2018-10-16 15:11:41 99 110
也就是说:对于每一行,采用原始数据帧中的前一个值,但不采用子集数据帧中的前一个值,使用索引值和默认的外部联接和ed原始值,然后将匹配的值替换为缺失值并向前填充,最后通过A
列中的缺失值删除行:
df = pd.concat([df_subset['A'], df['A'].shift()], axis=1, keys=('A','new'), sort=True)
df['new'] = df['new'].mask(df['new'].isin(df['A'])).ffill()
df = df.dropna(subset=['A'])
print (df)
A new
2018-10-16 15:11:11 102.0 101.0
2018-10-16 15:11:20 103.0 110.0
2018-10-16 15:11:41 99.0 110.0
我终于做到了: df: 子网_df:
A
5 10
8 9
9 100000
10 6
12 10110
13 10111
最后一个
110
是否正确?因为前面的值是103
,所以它是正确的。因为前一个(2018-10-16 15:11:20)也在子集数据帧中。因此,正确的值是2018-10-16 15:11:17中不在子集DFT中的值2018-10-16 15:11:41的值必须是110。不103@Alfonso_MA-你能再解释一下吗?