在Pandas中进行分组时,如何为每列获取单个值?

时间:2013-08-04 09:44:48

标签: pandas

假设以下DataFrame

'user' 'val_A' 'val_B' 
'A'    '1'     '2' 
'A'    '1'     '2' 
'B'    '3'     '2' 
'B'    '3'     '2'

如何在列val_A&列中获取单个值? val_B后的GroupBy user

由于

1 个答案:

答案 0 :(得分:2)

也许drop_duplicates()

import pandas as pd
from StringIO import StringIO
data = """'user' 'val_A' 'val_B' 
'A'    '1'     '2' 
'A'    '1'     '2' 
'B'    '3'     '2' 
'B'    '3'     '2'""".replace("'", "")
df = pd.read_csv(StringIO(data), delim_whitespace=True)
print df.drop_duplicates()

输出:

    user  val_A  val_B
0    A      1      2
2    B      3      2

或者如果你想要groupby:

print df[["val_A", "val_B"]].groupby(df["user"]).drop_duplicates()

输出:

          val_A  val_B
user                
A    0      1      2
B    2      3      2