Ndërroni rreshtat dhe kolonat e një grupi dydimensional të llojit të listës Python

biznes

Lloji standard i listës Python mund të përfaqësojë një grup dy-dimensionale me një listë listash.

Ky seksion shpjegon se si të ndërrojmë rreshtat dhe kolonat e këtij grupi dydimensional.

    1. Konvertoni në grup NumPy
    2. .TTranspozoni me këtë.
    1. pandas.DataFrameKonverto në këtë
    2. .TTranspozoni me këtë.
  • Transpozimi me funksionin e integruar zip()

Është më e lehtë të përdorësh NumPy ose panda, por nëse nuk dëshiron të importosh NumPy ose panda vetëm për transpozim, mund të përdorësh funksionin zip() për të transpozuar.

Vargu origjinal dydimensional është përcaktuar si më poshtë

import numpy as np
import pandas as pd

l_2d = [[0, 1, 2], [3, 4, 5]]

U konvertua në ndarray të grupit NumPy dhe u transpozua me .T

Gjeneroni një varg vargu NumPy nga grupi origjinal dydimensional dhe merrni objektin e transpozuar me atributin .T.

Nëse dëshironi një objekt të llojit të listës Python në fund, konvertoni më tej atë në një listë me metodën tolist().

arr_t = np.array(l_2d).T

print(arr_t)
print(type(arr_t))
# [[0 3]
#  [1 4]
#  [2 5]]
# <class 'numpy.ndarray'>

l_2d_t = np.array(l_2d).T.tolist()

print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>

Përveç atributit .T, mund të përdoret edhe metoda ndarray transpose() dhe funksioni numpy.transpose().

Konvertuar në panda.DataFrame dhe transpozuar me .T

Gjeneroni një panda.DataFrame nga grupi origjinal dydimensional dhe merrni objektin e transpozuar me atributin .T.

Nëse dëshironi një objekt të llojit të listës Python në fund, merrni numpy.ndarray me atributin vlerat dhe më pas konvertoni atë në një listë me metodën tolist().

df_t = pd.DataFrame(l_2d).T

print(df_t)
print(type(df_t))
#    0  1
# 0  0  3
# 1  1  4
# 2  2  5
# <class 'pandas.core.frame.DataFrame'>

l_2d_t = pd.DataFrame(l_2d).T.values.tolist()

print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>

Transpozimi me funksionin e integruar zip()

Transpozon një grup dy-dimensionale duke përdorur funksionin e integruar zip().

zip() është një funksion që kthen një përsëritës që përmbledh elementet e përsëritësve të shumtë (lista, tuples, etj.). Përdoret kur ekzekutohen lista të shumta në një cikli for, për shembull.

Për më tepër, funksioni përdor një mekanizëm ku lista mund të zgjerohet dhe kalohet nëse argumenti i funksionit shënohet me një yll.

Transpozimet mund të bëhen si më poshtë.

l_2d_t_tuple = list(zip(*l_2d))

print(l_2d_t_tuple)
print(type(l_2d_t_tuple))
# [(0, 3), (1, 4), (2, 5)]
# <class 'list'>

print(l_2d_t_tuple[0])
print(type(l_2d_t_tuple[0]))
# (0, 3)
# <class 'tuple'>

Siç është, elementët brenda janë tupa. Prandaj, nëse doni ta bëni atë një listë, përdorni list(), e cila konverton një tuple në një listë në shënimin e kuptimit të listës.

l_2d_t = [list(x) for x in zip(*l_2d)]

print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>

print(l_2d_t[0])
print(type(l_2d_t[0]))
# [0, 3]
# <class 'list'>

Më poshtë është një përmbledhje hap pas hapi e procesit.

Elementet e listës zgjerohen me një yll, elementët e zgjeruar grupohen së bashku me funksionin zip() dhe më pas tupleja konvertohet në një listë me shënimin e kuptimit të listës.

print(*l_2d)
# [0, 1, 2] [3, 4, 5]

print(list(zip([0, 1, 2], [3, 4, 5])))
# [(0, 3), (1, 4), (2, 5)]

print([list(x) for x in [(0, 3), (1, 4), (2, 5)]])
# [[0, 3], [1, 4], [2, 5]]
Copied title and URL