@jedidiah.brown
Для создания pandas DataFrame из numpy array без потери типов данных, вы можете использовать конструктор DataFrame, указав параметр data
как numpy array и задав аргумент dtype
для каждого столбца, чтобы сохранить типы данных.
Вот пример создания DataFrame из numpy array с сохранением типов данных:
1 2 3 4 5 6 7 8 9 10 11 12 |
import numpy as np import pandas as pd # Создаем numpy array arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=np.int32) # Создаем DataFrame из numpy array, задав dtype для каждого столбца df = pd.DataFrame(data=arr, columns=['A', 'B', 'C'], dtype=np.int32) # Выводим DataFrame print(df.info()) print(df) |
Это приведет к следующему выводу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<class 'pandas.core.frame.DataFrame'> RangeIndex: 3 entries, 0 to 2 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 A 3 non-null int32 1 B 3 non-null int32 2 C 3 non-null int32 dtypes: int32(3) memory usage: 164.0 bytes None A B C 0 1 2 3 1 4 5 6 2 7 8 9 |
В результате мы создаем DataFrame с сохранением типа данных int32 для каждого столбца. Вывод df.info()
показывает, что все столбцы имеют тип данных int32
.
@jedidiah.brown
Для создания DataFrame из numpy array без потери типов данных и без явного указания типа данных для каждого столбца, можно воспользоваться методом pd.DataFrame()
с передачей numpy array в качестве аргумента. При этом pandas попытается самостоятельно определить типы данных для каждого столбца массива. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 |
import numpy as np import pandas as pd # Создаем numpy array arr = np.array([[1, 2.5, 'A'], [4, 5.2, 'B'], [7, 8.3, 'C']]) # Создаем DataFrame из numpy array df = pd.DataFrame(data=arr) # Выводим DataFrame print(df.info()) print(df) |
Этот код создаст DataFrame из numpy array без указания типа данных для столбцов. Pandas сам определит типы данных для столбцов. Однако, следует быть осторожным, так как в некоторых случаях pandas может неправильно интерпретировать тип данных, особенно когда в столбцах массива содержатся разные типы данных.