这是我的密码:
features = ['c1']
secondLargest = all_data.groupby(['Id'])[features].apply(
lambda x:x.nlargest(2,features)).reset_index()
all_data = pd.merge(all_data, secondLargest.reset_index(),
suffixes=["", "_secondLargest"], how='left', on=['Id'])
此代码的问题是:
1.)secondLargest
变量还有一列名为level_1
2.)当我将第二大变量与所有数据合并时,会合并三列index
、level_1
、c1_secondLargest
,我只想要c1_secondLargest
3.)当我将第二大变量与所有\u数据合并时,所有\u数据的行数加倍。你知道吗
合并前形状:(1000000,251)
合并后的形状:(2000000,251)
编辑:
输入:
id c1
1 3
1 34
1 75
2 84
2 54
2 23
2 96
3 55
3 76
输出:
id c1 c1_secondLargest
1 3 34
1 34 34
1 75 34
2 84 84
2 54 84
2 23 84
2 96 84
3 55 55
3 76 55
使用
nth
+sort_values
索引对齐将得到的序列放回初始数据帧。你知道吗
IIUC您需要:
或:
相关问题 更多 >
编程相关推荐