Я не уверен, что это то, что вы ищете, но я использовал groupby
, чтобы получить сгруппирован в список unique
значений:
Сначала я должен сгенерировать пример данных:
import pandas as pd
import numpy as np
n = 30
letters = np.array(['A','B'])
locs = np.array(['THX','IAH'])
year = np.random.randint(2013,2016,n)
ids = np.array([letters[np.random.randint(0,len(letters))]+str(np.random.randint(1,100)) for i in range(n)])
locations = np.array([locs[np.random.randint(0,len(locs))]+str(np.random.randint(1,5)) for i in range(n)])
df = pd.DataFrame(np.vstack([year,locations,ids]).T,columns=['Year','Location','id'])
Тогда вы можете сделать:
In: df['id'].groupby(df['Location']).apply(lambda L: np.unique(L))
Out:
Location
IAH1 [A18, A45, B5]
IAH3 [A17, B12, B59]
IAH4 [A84, A86, B27, B43, B87]
THX1 [A48, A51, A6, A72, A8, A82, B23, B4, B66, B78]
THX2 [A25, A41, A49, A58, B13, B39]
THX3 [A26, A63, B61]
Name: id, dtype: object