Biến đổi cột dạng danh sách

Tái định dạng dữ liệu với pandas

Maria Eugenia Inzaugarat

Data Scientist

Các cột dạng danh sách

DataFrame với một cột chứa danh sách

Tái định dạng dữ liệu với pandas

Biến đổi cột dạng danh sách

Mũi tên từ DataFrame sang DataFrame sau khi explode

Tái định dạng dữ liệu với pandas

Phương thức .explode()

Mũi tên từ DataFrame sang DataFrame sau khi explode

Phương thức explode

Tái định dạng dữ liệu với pandas

Tách nổ một cột

cities
          city  country               zip_code
0  Los Angeles      USA  [90001, 90004, 90008]
1       Madrid    Spain  [28001, 28004, 28005]
2        Rabat  Morocco         [10010, 10170]
Tái định dạng dữ liệu với pandas

Tách nổ một cột

cities_explode = cities['zip_code'].explode()
cities_explode
0    90001
0    90004
0    90008
1    28001
1    28004
1    28005
2    10010
2    10170
Tái định dạng dữ liệu với pandas

Tách nổ một cột

cities[['city', 'country']]
Tái định dạng dữ liệu với pandas

Tách nổ một cột

cities[['city', 'country']].merge(cities_explode,                                  )
Tái định dạng dữ liệu với pandas

Tách nổ một cột

cities[['city', 'country']].merge(cities_explode, left_index=True, right_index=True)
          city  country zip_code
0  Los Angeles      USA    90001
0  Los Angeles      USA    90004
0  Los Angeles      USA    90008
1       Madrid    Spain    28001
1       Madrid    Spain    28004
1       Madrid    Spain    28005
2        Rabat  Morocco    10010
2        Rabat  Morocco    10170
Tái định dạng dữ liệu với pandas

Tách nổ cột trong DataFrame

cities_explode = cities.explode('zip_code')
cities_explode
          city  country zip_code
0  Los Angeles      USA    90001
0  Los Angeles      USA    90004
0  Los Angeles      USA    90008
1       Madrid    Spain    28001
1       Madrid    Spain    28004
1       Madrid    Spain    28005
2        Rabat  Morocco    10010
2        Rabat  Morocco    10170
Tái định dạng dữ liệu với pandas

Tách nổ cột trong DataFrame

cities_explode.reset_index(drop=True, inplace=True)
          city  country zip_code
0  Los Angeles      USA    90001
1  Los Angeles      USA    90004
2  Los Angeles      USA    90008
3       Madrid    Spain    28001
4       Madrid    Spain    28004
5       Madrid    Spain    28005
6        Rabat  Morocco    10010
7        Rabat  Morocco    10170
Tái định dạng dữ liệu với pandas

Danh sách rỗng

cities_new
          city  country               zip_code
0  Los Angeles      USA  [90001, 90004, 90008]
1       Madrid    Spain                     []
2        Rabat  Morocco         [10010, 10170]
cities_new.explode('zip_code')
          city  country zip_code
0  Los Angeles      USA    90001
0  Los Angeles      USA    90004
0  Los Angeles      USA    90008
1       Madrid    Spain      NaN
2        Rabat  Morocco    10010
2        Rabat  Morocco    10170
Tái định dạng dữ liệu với pandas

Xâu chuỗi thao tác

cities
          city  country             zip_code
0  Los Angeles      USA  90001, 90004, 90008
1       Madrid    Spain  28001, 28004, 28005
2        Rabat  Morocco         10010, 10170
Tái định dạng dữ liệu với pandas

Xâu chuỗi thao tác

cities['zip_code'].str.split(',', expand=True)
       0       1       2
0  90001   90004   90008
1  28001   28004   28005
2  10010   10170    None
Tái định dạng dữ liệu với pandas

Xâu chuỗi thao tác

cites.assign(zip_code=                                )
Tái định dạng dữ liệu với pandas

Xâu chuỗi thao tác

cites.assign(zip_code=cities['zip_code'].str.split(','))
Tái định dạng dữ liệu với pandas

Xâu chuỗi thao tác

cites.assign(zip_code=cities['zip_code'].str.split(',')).explode('zip_code')
          city  country zip_code
0  Los Angeles      USA    90001
0  Los Angeles      USA    90004
0  Los Angeles      USA    90008
1       Madrid    Spain    28001
1       Madrid    Spain    28004
1       Madrid    Spain    28005
2        Rabat  Morocco    10010
2        Rabat  Morocco    10170
Tái định dạng dữ liệu với pandas

Hãy luyện tập!

Tái định dạng dữ liệu với pandas

Preparing Video For Download...