我们如何应用熊猫分组来获得预期的输出?


Col1    Col2   Col3   Result
2        70     1      15
2        71     2      15
2        72     3      15
3        80     4      16    
3        81     5      16
3        82     6      16
3        2      15     16
3        3      16     16

我是熊猫的新手,谁能解释一下如何获得最后一列结果以添加我现有的数据框?

col2值对所有唯一行使用带有DataFrame.drop_duplicatesSeries.map

df['Res'] = df['Col1'].map(df.drop_duplicates('col2').set_index('Col2')['Col3'])
print (df)
Col1  Col2  Col3  Result  Res
0     2    70     1      15   15
1     2    71     2      15   15
2     2    72     3      15   15
3     3    80     4      16   16
4     3    81     5      16   16
5     3    82     6      16   16
6     3     2    15      16   16
7     3     3    16      16   16

另一种选择是merge

df.merge(df[['Col2','Col3']].rename(columns={'Col2':'Col1', 'Col3':'Res'}),
on='Col1', how='left')

输出:

Col1  Col2  Col3  Result  Res
0     2    70     1      15   15
1     2    71     2      15   15
2     2    72     3      15   15
3     3    80     4      16   16
4     3    81     5      16   16
5     3    82     6      16   16
6     3     2    15      16   16
7     3     3    16      16   16

最新更新