Select 每个 h2o 数据帧中只有第一行 group_by 组(用于合并)?
Select only first rows in each h2o dataframe group_by group (for merging)?
有没有办法 select 每个 h2o 数据帧 group_by 组中只有第一行?
这样做的原因是将 h2o 数据框中的某些列合并到该数据框的 group_by
版本中,该版本是为获取一些统计信息而创建的。基于原始中的特定分组。
例如,假设有两个数据框,例如
df1
receipt_key b c item_id
------------------------
a1 1 2 1
a2 3 4 1
and
df2
receipt_key e f item_id
--------------------------
a1 5 6 1
a1 7 8 2
a2 9 10 1
想加入他们,最终得到数据框
df3
receipt_key b c e f item_id
-----------------------------
a1 1 2 5 6 1
a2 3 4 9 10 1
曾尝试做类似 df2.group_by('receipt_key').max('item_id')
的操作以合并到 df1 中,但这样做只会在组的 get_frame()
数据框中留下 item_id 列(甚至列出所有列df2 到 max()
on 不会给出正确的值,而且对于我的实际用例(在 df2 中有更多列)来说也很麻烦。
关于如何做到这一点有什么想法吗?简单地删除重复项是否足以获得所需的数据框(尽管在 h2o 中执行此操作似乎存在障碍,请参阅 https://0xdata.atlassian.net/browse/PUBDEV-3292)?
给你:
import h2o
h2o.init()
df1 = h2o.H2OFrame({'receipt_key': ['a1', 'a2'] , 'b':[1,3] , 'c':[2,4], 'item_id': [1,1]})
df1['receipt_key'] = df1['receipt_key'] .asfactor()
df2 = h2o.H2OFrame({'receipt_key': ['a1', 'a1','a2'] , 'e':[5,7,9] , 'f':[6,8,10], 'item_id': [1,2,1]})
df2['receipt_key'] = df2['receipt_key'].asfactor()
df3 = df1.merge(df2)
df_subset = df3[['receipt_key','b','c','e','f','item_id']]
print(df_subset)
receipt_key b c e f item_id
a1 1 2 5 6 1
a2 3 4 9 10 1
有没有办法 select 每个 h2o 数据帧 group_by 组中只有第一行?
这样做的原因是将 h2o 数据框中的某些列合并到该数据框的 group_by
版本中,该版本是为获取一些统计信息而创建的。基于原始中的特定分组。
例如,假设有两个数据框,例如
df1
receipt_key b c item_id
------------------------
a1 1 2 1
a2 3 4 1
and
df2
receipt_key e f item_id
--------------------------
a1 5 6 1
a1 7 8 2
a2 9 10 1
想加入他们,最终得到数据框
df3
receipt_key b c e f item_id
-----------------------------
a1 1 2 5 6 1
a2 3 4 9 10 1
曾尝试做类似 df2.group_by('receipt_key').max('item_id')
的操作以合并到 df1 中,但这样做只会在组的 get_frame()
数据框中留下 item_id 列(甚至列出所有列df2 到 max()
on 不会给出正确的值,而且对于我的实际用例(在 df2 中有更多列)来说也很麻烦。
关于如何做到这一点有什么想法吗?简单地删除重复项是否足以获得所需的数据框(尽管在 h2o 中执行此操作似乎存在障碍,请参阅 https://0xdata.atlassian.net/browse/PUBDEV-3292)?
给你:
import h2o
h2o.init()
df1 = h2o.H2OFrame({'receipt_key': ['a1', 'a2'] , 'b':[1,3] , 'c':[2,4], 'item_id': [1,1]})
df1['receipt_key'] = df1['receipt_key'] .asfactor()
df2 = h2o.H2OFrame({'receipt_key': ['a1', 'a1','a2'] , 'e':[5,7,9] , 'f':[6,8,10], 'item_id': [1,2,1]})
df2['receipt_key'] = df2['receipt_key'].asfactor()
df3 = df1.merge(df2)
df_subset = df3[['receipt_key','b','c','e','f','item_id']]
print(df_subset)
receipt_key b c e f item_id
a1 1 2 5 6 1
a2 3 4 9 10 1