检索与pandas-python中另一列中第一次出现元素相对应的列中的值

时间:2016-06-03 16:54:34

标签: python pandas dataframe

df=pd.DataFrame({'a':['x','x','y','y','y','z','y','y'],'b':np.random.randn(8)})

    a    b
0   x   -0.2414
1   x   1.2214
2   y   0.3442      
3   y   -2.9492
4   y   0.1214
5   z   2.8102
6   y   -1.3844
7   y   -0.7363

选择列b中与第一个字母a中第一次出现的字母相对应的值的最有效方法是什么? 这就是我想要实现的目标

    a   b
0   x   -0.2414
2   y   0.3442
5   z   2.8102
6   y   -1.3844

2 个答案:

答案 0 :(得分:2)

df[df['a'] != df['a'].shift(1)]
Out[22]: 
   a         b
0  x  0.564161
2  y  1.498050
5  z  0.080116
6  y  0.255031

我使用的原始数据框:

df
Out[23]: 
   a         b
0  x  0.564161
1  x -1.153969
2  y  1.498050
3  y  0.067259
4  y -0.345102
5  z  0.080116
6  y  0.255031
7  y  0.345250

答案 1 :(得分:1)

您希望groupby与我a一样使用{/ p>}:

g = df.groupby('a')
g.first()

将数据分组后,first会返回a

的初始值

Pandas groupby