假设我与多行有user - child
关系
user_id child_id birth_date gender
0 1 1.0 2018-01-01 m
1 1 2.0 2018-01-03 f
2 1 3.0 2018-01-04 m
3 2 NaN None None
现在我想选一个最小的孩子,并把他们放在专栏中
user_id kid_1_birth_date kid_1_gender kid_2_birth_date kid_2_gender
0 1 2018-01-01 m 2018-01-04 m
1 2 None None None None
我目前正在做groupby
,然后进行group.iterrows
,并将行添加到新创建的数据框中,想知道是否有更好的方法
我正在使用数据框,并使用tf.data.Dataset.from_tensor_slices
转换为tf.data,并且输入最小的孩子和最大的孩子的年龄/性别,这就是为什么我首先要转换数据的原因。< / p>
答案 0 :(得分:1)
从drop_duplicates
出发,然后到merge
的一种方式
df1=df.sort_values('birth_date').drop_duplicates('user_id')
df2=df.sort_values('birth_date').drop_duplicates('user_id',keep='last')
df1.drop('child_id',1).merge(df2.drop('child_id',1),on='user_id',suffixes=('young','old'))
Out[474]:
user_id birth_dateyoung genderyoung birth_dateold genderold
0 1 2018-01-01 m 2018-01-04 m
1 2 NaT None NaT None