Pandas 使用 for 循环分组,编辑,然后合并
Pandas group by using for loop, editing, then combining
我有以下Table
time userid market device query querytype browser
0 2020-07-01 04:47:21 A EN-US PC WEATHER WEATHER EDGE
1 2020-07-01 07:23:52 C ZH-CN MOBILE RECIPIES FOOD SAFARI
2 2020-07-01 15:32:57 D EN-GB TABLET DOGS ANIMALS CHROME
3 2020-07-01 17:16:21 A EN-CA PC SEATTLE CITY EDGE
4 2020-07-01 21:07:21 D EN-GB TABLET DOG FOOD ANIMAL CHROME
5 2020-07-01 22:26:21 E DE-DE MOBILE IPHONE PRODUCTS CHROME
我正在尝试获取 userid
的最后一个查询。
last_query
0 NaN
1 NaN
2 NaN
3 WEATHER
4 DOGS
5 NaN
我正在使用以下代码来解决问题,但我没有得到任何值。
s = pd.Series()
for name, value in df.groupby('userid'):
userid = name
last_query = value['query'].shift()
s.append(last_query)
是否有任何方法可以将这些值组合在一起或完全实现这一点?
您可以执行以下操作:
df_last_queries = df.groupby('userid').shift(1)['query']
结果:
0 NaN
1 NaN
2 NaN
3 WEATHER
4 DOGS
5 NaN
重要提示:time
列需要按升序排列(看起来是这样)。
我有以下Table
time userid market device query querytype browser
0 2020-07-01 04:47:21 A EN-US PC WEATHER WEATHER EDGE
1 2020-07-01 07:23:52 C ZH-CN MOBILE RECIPIES FOOD SAFARI
2 2020-07-01 15:32:57 D EN-GB TABLET DOGS ANIMALS CHROME
3 2020-07-01 17:16:21 A EN-CA PC SEATTLE CITY EDGE
4 2020-07-01 21:07:21 D EN-GB TABLET DOG FOOD ANIMAL CHROME
5 2020-07-01 22:26:21 E DE-DE MOBILE IPHONE PRODUCTS CHROME
我正在尝试获取 userid
的最后一个查询。
last_query
0 NaN
1 NaN
2 NaN
3 WEATHER
4 DOGS
5 NaN
我正在使用以下代码来解决问题,但我没有得到任何值。
s = pd.Series()
for name, value in df.groupby('userid'):
userid = name
last_query = value['query'].shift()
s.append(last_query)
是否有任何方法可以将这些值组合在一起或完全实现这一点?
您可以执行以下操作:
df_last_queries = df.groupby('userid').shift(1)['query']
结果:
0 NaN
1 NaN
2 NaN
3 WEATHER
4 DOGS
5 NaN
重要提示:time
列需要按升序排列(看起来是这样)。