1

假设以下DataFrame

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

如何在列val_Aval_B之后获取单个值GroupBy user

谢谢

4

1 回答 1

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
于 2013-08-04T12:22:49.563 回答