Reputation: 2441
Given a Pandas Series like the one below:
0 [ID01]
1 [ID02]
2 [ID05, ID08]
3 [ID09, ID56, ID32]
4 [ID03]
The objective is to get a single list like the one below:
[ID01, ID02, ID05, ID08, ID09, ID56, ID32, ID03]
How do you achieve that in a pythonic way in Python?
Upvotes: 3
Views: 528
Reputation: 294576
Assuming that is a pandas.Series
object
Full list
np.concatenate(s).tolist()
Unique list
np.unique(np.concatenate(s)).tolist()
Works if elements are lists. Doesn't work if they are numpy arrays.
Full list
s.sum()
Unique list
pd.unique(s.sum()).tolist()
Full list
[x for y in s for x in y]
Unique list (Thanks @pault)
list({x for y in s for x in y})
list(set.union(*map(set, s)))
s = pd.Series([
['ID01'],
['ID02'],
['ID05', 'ID08'],
['ID09', 'ID56', 'ID32'],
['ID03']
])
s
0 [ID01]
1 [ID02]
2 [ID05, ID08]
3 [ID09, ID56, ID32]
4 [ID03]
dtype: object
Upvotes: 3