Рубрики
Без рубрики

Как преобразовать массив Numpy в фрейм данных Pandas

В этом уроке мы увидим все функции и способы, с помощью которых мы можем преобразовать массив numpy в фрейм данных pandas.

Автор оригинала: Team Python Pool.

Вступление

В python есть много способов преобразовать массив numpy в фрейм данных pandas. Но иногда нас просят решить проблему с помощью определенных методов. Итак, в этом уроке мы увидим все методы, с помощью которых мы можем преобразовать массив numpy в фрейм данных pandas.

Что такое массив Numpy?

Массивы Numpy – это сетка значений одного типа, индексируемых кортежем неотрицательных целых чисел.

import numpy as np
arr = np.array((1, 2, 3, 4, 5))
print(arr)

Выход:

[1 2 3 4 5]

Что такое Фрейм данных Панд?

Фрейм данных Pandas является двумерным, размер которого изменчив и который потенциально представляет собой гетерогенные табличные структуры данных с помеченными строками и столбцами.

import pandas as pd
lst = ['Latracal', 'Solution', 'an', 'online', 
            'portal', 'for', 'languages']
df = pd.DataFrame(lst)
print(df)

Выход:

       0
0   Latracal
1   Solution
2         an
3     online
4     portal
5        for
6  languages

Синтаксис фрейма данных Pandas

pandas.DataFrame(data=None, index=None, columns=None)

Параметр фрейма данных Pandas

  • data : Это вход в виде массива numpy, словаря.
  • Index: Этот вход используется для получения результирующего фрейма данных.
  • Столбцы: Это метки столбцов для результирующего фрейма данных.

Шаги по преобразованию массива Numpy в фрейм данных Pandas

  1. Импортируйте модули: pandas и numpy.
  2. Создайте массив numpy.
  3. Создайте список значений индекса и столбцов для фрейма данных.
  4. Затем создайте фрейм данных.
  5. По крайней мере, отобразить фрейм данных.

Различные примеры преобразования массива Numpy в фрейм данных Pandas

Давайте разберемся в преобразовании массива numpy в фрейм данных pandas с помощью различных методов и способов, подробно объясненных с помощью примеров:

1. Использование массива numpy из метода random.rand для преобразования массива Numpy в фрейм данных Pandas

В этом примере мы возьмем входные данные массива numpy из функции random.rand() в numpy. а затем примените синтаксис фрейма данных, чтобы преобразовать его в фрейм данных pandas.

#import numpy and pandas module
import numpy as np 
import pandas as pd 
  
arr = np.random.rand(4, 4) 
print("Numpy array : ",arr ) 
  
# conversion into dataframe 
df = pd.DataFrame(arr, columns =['A', 'B', 'C', 'D']) 
print("\nPandas DataFrame: ")
print(df)

Выход:

Numpy array :  [[0.93845309 0.89059495 0.51480681 0.06583541]
 [0.94972596 0.55147651 0.40720578 0.86422873]
 [0.53556404 0.7760867  0.80657461 0.37336038]
 [0.21177783 0.90187237 0.53926327 0.06067915]]
Pandas DataFrame:
       A         B         C         D
0  0.938453  0.890595  0.514807  0.065835
1  0.949726  0.551477  0.407206  0.864229
2  0.535564  0.776087  0.806575  0.373360
3  0.211778  0.901872  0.539263  0.060679

Объяснение:

Здесь, во-первых, мы импортировали два модуля, то есть numpy и pandas. Во – вторых, мы взяли входной массив из метода random.rand() из модуля numpy и напечатали входной массив. В-третьих, мы применили синтаксис для преобразования его в фрейм данных, в котором мы установили значения столбцов от A до D. Если мы не задаем строки и столбцы, то они задаются по умолчанию, начиная с индекса 0. Наконец, мы напечатали фрейм данных. Таким образом, вы можете увидеть выходной и преобразованный массив в кадр данных.

2. Использование массива numpy с random.rand и reshape()

В этом примере мы будем принимать входные данные в функции random.rand().reshape (). Во-вторых, мы применим синтаксис фрейма данных со значениями индекса и столбцами и напечатаем преобразованный фрейм данных из модуля numpy.

#import module: numpy and pandas
import numpy as np 
import pandas as pd 
  
arr = np.random.rand(6).reshape(2, 3) 
print("Numpy array : " ,arr) 
  
# converting into dataframe 
df = pd.DataFrame(arr, columns =['1', '2', '3']) 
print("\nPandas DataFrame: ") 
print(df)

Выход:

Numpy array :  [[0.05949315 0.66499294 0.39795918]
 [0.93026286 0.42710097 0.70753262]]
Pandas DataFrame: 
      1         2         3
0  0.059493  0.664993  0.397959
1  0.930263  0.427101  0.707533

Объяснение:

Здесь, во-первых, мы импортировали два модуля, то есть numpy и pandas. Во-вторых, мы взяли входной массив из метода random.rand().reshape() из модуля numpy и напечатали входной массив. В-третьих, мы применили синтаксис для преобразования его в фрейм данных, в котором мы установили значения столбцов от 1 до 4. Если мы не задаем строки и столбцы, то они задаются по умолчанию, начиная с индекса 0. Наконец, мы напечатали фрейм данных. Таким образом, вы можете увидеть выходной и преобразованный массив в кадр данных.

3. использование массива numpy для преобразования массива Numpy в фрейм данных Pandas

В этом примере мы будем принимать входные данные из np.array (), а затем преобразовывать массив numpy в pandas dataframe с помощью синтаксиса dataframe.

#import module numpy and pandas
import numpy as np 
import pandas as pd   
  
arr = np.array([[1, 2], [3, 4]]) 
print("Numpy array : ",arr) 
  
# converting into dataframe 
df = pd.DataFrame(data = arr, index =["row1", "row2"],  
                  columns =["col1", "col2"]) 
  
print("\nPandas DataFrame: ") 
print(df)

Выход:

Numpy array :  [[1 2]
 [3 4]]
Pandas DataFrame: 
       col1  col2
row1     1     2
row2     3     4

Объяснение;

Здесь, во-первых, мы импортировали два модуля, то есть numpy и pandas. Во-вторых, мы взяли метод input array np.array() из модуля numpy и напечатали входной массив. В-третьих, мы применили синтаксис для преобразования его в фрейм данных, в котором мы установили значения строк из row1, row2 и столбцов из col1, col2. Если мы не задаем строки и столбцы, то они задаются по умолчанию, начиная с индекса 0. Наконец, мы напечатали фрейм данных. Таким образом, вы можете увидеть выходной и преобразованный массив в кадр данных.

4. Создание пустого фрейма данных

В этом примере мы покажем, как создать пустой фрейм данных и затем распечатать его.

#import pandas module and numpy module
import pandas as pd
import numpy as np

df = pd.DataFrame(np.nan, index=[0,1,2], columns=['A'])
print(df)

Выход:

   A
0 NaN
1 NaN
2 NaN

Объяснение:

Здесь, во-первых, мы импортировали два модуля, то есть numpy и pandas. Во-вторых, мы применили синтаксис фрейма данных, не беря входной массив из модуля numpy. В синтаксисе у нас есть np.nan, что означает, что все значения массива имеют значение NaN, то есть 0. В функции строки задаются с помощью 0, 1, 2, а столбцы-с помощью A. Если мы не задаем строки и столбцы, то они задаются по умолчанию, начиная с индекса 0. Наконец, мы напечатали фрейм данных. Таким образом, вы можете увидеть выходной и преобразованный массив в кадр данных.

5. Генерация строк и столбцов с помощью итерации

В этом примере мы будем генерировать столбцы индекса и заголовки столбцов с помощью итерации.

#import module: numpy and pandas
import pandas as pd 
import numpy as np 
  
arr = np.array([[1, 2, 3],  
                       [4, 5, 6]]) 
   
df = pd.DataFrame(data = arr[0:, 0:], 
                        index = ['Row_' + str(i + 1)  
                        for i in range(arr.shape[0])], 
                        columns = ['Column_' + str(i + 1)  
                        for i in range(arr.shape[1])]) 
  
print(df) 

Выход:

          Column_1  Column_2  Column_3
Row_1         1         2         3
Row_2         4         5         6

Объяснение:

Здесь, во-первых, мы импортировали два модуля, то есть numpy и pandas. Во-вторых, мы взяли метод input array np.array() из модуля numpy и напечатали входной массив. В-третьих, мы применили синтаксис для преобразования его в фрейм данных, в котором мы задали значения строк и столбцов с помощью итерации через цикл for. Если мы не задаем строки и столбцы, то они задаются по умолчанию, начиная с индекса 0. Наконец, мы напечатали фрейм данных. Таким образом, вы можете увидеть выходной и преобразованный массив в кадр данных.

6. Генерация Строк И Столбцов перед преобразованием в фрейм данных

В этом примере мы будем принимать входные данные из массива numpy. Затем мы установим столбцы индекса и заголовки столбцов отдельно, а затем поместим значения строк и столбцов в синтаксис фрейма данных.

#import module: numpy and pandas
import pandas as pd 
import numpy as np 
  
arr = np.array([[1, 2, 3],  
                       [4, 5, 6]]) 

index = ['Row_' + str(i)  
        for i in range(1, len(arr) + 1)] 
  
columns = ['Column_' + str(i)  
          for i in range(1, len(arr[0]) + 1)] 

df = pd.DataFrame(arr ,  
                        index = index, 
                        columns = columns) 
 
print(df) 

Выход:

     Column_1  Column_2  Column_3
Row_1    1         2         3
Row_2    4         5         6

Объяснение:

Здесь, во-первых, мы импортировали два модуля, то есть numpy и pandas. Во-вторых, мы взяли метод input array np.array() из модуля numpy и напечатали входной массив. В-третьих, мы установили значение для строк и столбцов в имени переменной как Индекс и столбцы с помощью итерации через цикл for. В-четвертых, мы применили синтаксис для преобразования его в фрейм данных, в котором мы установили значения строк и столбцов со значениями, определенными перед функцией фрейма данных. Если мы не задаем строки и столбцы, то они задаются по умолчанию, начиная с индекса 0. Наконец, мы напечатали фрейм данных. Таким образом, вы можете увидеть выходной и преобразованный массив в кадр данных.

Вывод

В этом уроке мы обсудили, как создать фрейм данных pandas из массива numpy. Мы также обсудили, как мы можем создать и написать программу для преобразования массива numpy в фрейм данных pandas. Все примеры подробно объясняются для лучшего понимания. Вы можете использовать любую из программ в соответствии с вашими требованиями.