按最小值分组并用另一列中的值填充 NA

2024-05-13

我有一个如下所示的示例数据框。

df = pd.DataFrame (data = {'uid': [1,1,1,2,2,3], 'pagename':['home', 'blah', 
'blah', 'home', 'blah', 'blah'], 'startpage': ['NA', 'NA', 'NA', 'home', 
'home', 'blah'], 'date_time': [0,1,2,5,9,1]})

我想要做的是按 UID 分组并找到最短的日期时间。如果最小 date_time 的起始页为 Null(我将字符串“NA”表示为 Null),那么我想使用该行中的页面名称来填充起始页列。我还希望为具有相同 UID 的所有行填充起始页。

这是我想要的结束数据框。

df = pd.DataFrame (data = {'uid': [1,1,1,2,2,3], 'pagename':['home', 'blah', 
'blah', 'home', 'blah', 'blah'], 'startpage': ['home', 'home', 'home', 
'home', 'home', 'blah'], 'date_time': [0,1,2,5,9,1]})

fillna with transform

i = df.groupby('uid').date_time.transform('idxmin')
df.startpage = df.startpage.fillna(i.map(df.pagename))

print(df)

   date_time pagename startpage  uid
0          0     home      home    1
1          1     blah      home    1
2          2     blah      home    1
3          5     home      home    2
4          9     blah      home    2
5          1     blah      blah    3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按最小值分组并用另一列中的值填充 NA 的相关文章

随机推荐