2
的相同ID獲得獨特的價值觀我有熊貓數據框如下:如何從熊貓數據幀基於其他列
user id
1 2
1 2
1 2
1 3
1 3
我想按這樣的價值觀: (1,1,1, 2),(1,1,3)
我使用這一點,它給一列只有
pd.unique(df[['id']].values.ravel())
的獨特價值,但我想用獨特的使用熊貓ID列到GROUPBY值。
的相同ID獲得獨特的價值觀我有熊貓數據框如下:如何從熊貓數據幀基於其他列
user id
1 2
1 2
1 2
1 3
1 3
我想按這樣的價值觀: (1,1,1, 2),(1,1,3)
我使用這一點,它給一列只有
pd.unique(df[['id']].values.ravel())
的獨特價值,但我想用獨特的使用熊貓ID列到GROUPBY值。
的一種方式,似乎是不言自明的:
df = df.sort_values(['user', 'id'])
df['groups'] = (df.id!=df.id.shift()).cumsum() # pattern to number groups
df
Out[26]:
user id groups
0 1 2 1
1 1 2 1
2 1 2 1
3 1 3 2
4 1 3 2
df.id = df.id.drop_duplicates('last').reindex_like(df)
df
Out[28]:
user id groups
0 1 NaN 1
1 1 NaN 1
2 1 2.0 1
3 1 NaN 2
4 1 3.0 2
df.set_index('groups').stack()
Out[30]:
groups
1 user 1.0
user 1.0
user 1.0
id 2.0
2 user 1.0
user 1.0
id 3.0
dtype: float64
df.groupby(level=0).apply(tuple)
Out[36]:
groups
1 (1.0, 1.0, 1.0, 2.0)
2 (1.0, 1.0, 3.0)
dtype: object
IIUC你需要'df.groupby( '身份證')[ '用戶']唯一的()'? – jezrael