Diberikan Pandas Series seperti di bawah ini:

0 [ID01]
1 [ID02]
2 [ID05, ID08]
3 [ID09, ID56, ID32]
4 [ID03]

Tujuannya adalah untuk mendapatkan satu daftar seperti di bawah ini:

[ID01, ID02, ID05, ID08, ID09, ID56, ID32, ID03]

Bagaimana Anda mencapainya dengan cara Pythonic dengan Python?

3
datapug 6 April 2018, 22:57

1 menjawab

Jawaban Terbaik

Dengan asumsi itu adalah objek pandas.Series

Pilihan 1

Daftar lengkap

np.concatenate(s).tolist()

Opsi 1.1

Daftar unik

np.unique(np.concatenate(s)).tolist()

Pilihan 2

Berfungsi jika elemen adalah daftar. Tidak berfungsi jika itu adalah array numpy.
Daftar lengkap

s.sum()

Opsi 2.1

Daftar unik

pd.unique(s.sum()).tolist()

Opsi 3

Daftar lengkap

[x for y in s for x in y]

Opsi 3.1

Daftar unik (Terima kasih @pault)

list({x for y in s for x in y})

Opsi @Wen

list(set.union(*map(set, s)))

Mendirikan

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
3
piRSquared 6 April 2018, 20:47