2017-06-14 88 views
1

我有熊猫数据帧DF在大熊猫数据帧创造条件组列

id key_no 
1  1 
2  1 
3  2 
4  2 
5  2 
6  3 
7  3 

一个表中的这个特定KEY_NO与多个ID的

相关我想创建一个新的数据帧,其有列

keyno start_id end_id 
1   1   2 
2   3   5 
3   6   7 

即创建列 'START_ID',并为每个keyno 'END_ID',在数据帧DF2

我们可以尝试使用df.groupby,但如何使用它创建新的df2,我是新来的python, 任何线索?

回答

1

使用groupby + agg通过firstlast。最后rename列由dict

d = {'first':'start_id','last':'end_id'} 
df = df.groupby('key_no')['id'].agg(['first','last']).rename(columns=d) 
print (df) 
     start_id end_id 
key_no     
1    1  2 
2    3  5 
3    6  7 
+0

工作,一个查询,当你说在列的'值sorted',你在“ID”列权意味着什么? – Shubham

+0

ooops,第二个解决方案是错误的,因为最后一个值只在样本中最大,在实际数据中可能是,也许不是......类似于第一个和最小。 – jezrael