将 NumPy 数组转换为 Pandas DataFrame
本教程介绍了如何使用 pandas.DataFrame()
方法将 numpy 数组转换为 Pandas DataFrame。
我们将 numpy 数组传递到 pandas.DataFrame()
方法中,从 NumPy 数组生成 Pandas DataFrame。我们还可以为 DataFrame 指定列名和行索引。
使用 pandas.DataFrame()
方法将 NumPy 数组转换为 Pandas DataFrame
我们将 NumPy 数组传递到 pandas.DataFrame()
方法中,从 NumPy 数组中生成 DataFrame。
from numpy import random
import pandas as pd
random.seed(5)
random.randint(100, size=(3, 5))
data_array = random.randint(100, size=(4, 3))
print("NumPy Data Array is:")
print(data_array)
print("")
data_df = pd.DataFrame(data_array)
print("The DataFrame generated from the NumPy array is:")
print(data_df)
输出:
NumPy Data Array is:
[[27 44 77]
[75 65 47]
[30 84 86]
[18 9 41]]
The DataFrame generated from the NumPy array is:
0 1 2
0 27 44 77
1 75 65 47
2 30 84 86
3 18 9 41
它首先创建一个大小为 (4,3)
的随机数组,有 4 行 3 列。然后我们将数组作为参数传递给 pandas.DataFrame()
方法,该方法从数组中生成名为 data_df
的 DataFrame。默认情况下,pandas.DataFrame()
方法会插入默认的列名和行索引。
我们也可以通过 pandas.DataFrame()
方法的 index
和 columns
参数来设置列名和行索引。
from numpy import random
import pandas as pd
random.seed(5)
random.randint(100, size=(3, 5))
data_array = random.randint(100, size=(4, 3))
row_indices = ["Row_1", "Row_2", "Row_3", "Row_4"]
column_names = ["Column_1", "Column_2", "Column_3"]
print("NumPy Data Array is:")
print(data_array)
print("")
data_df = pd.DataFrame(data_array, index=row_indices, columns=column_names)
print("The DataFrame generated from the NumPy array is:")
print(data_df)
输出:
NumPy Data Array is:
[[27 44 77]
[75 65 47]
[30 84 86]
[18 9 41]]
The DataFrame generated from the NumPy array is:
Column_1 Column_2 Column_3
Row_1 27 44 77
Row_2 75 65 47
Row_3 30 84 86
Row_4 18 9 41
在这里,我们将 index
的值设置为 row_indices
,这是包含每行索引的列表。同样,我们通过将 columns
的值设置为 column_names
列表来分配列名,这个列表包含了每一列的名称。
在某些情况下,NumPy 数组本身可能包含行索引和列名。然后我们使用数组切片从数组中提取数据、行索引和列名。
import numpy as np
import pandas as pd
marks_array = np.array(
[["", "Mathematics", "Economics"], ["Sunny", 25, 23], ["Alice", 23, 24]]
)
print("NumPy Data Array is:")
print(marks_array)
print("")
row_indices = marks_array[1:, 0]
column_names = marks_array[0, 1:]
data_df = pd.DataFrame(
data=np.int_(marks_array[1:, 1:]), index=row_indices, columns=column_names
)
print("The DataFrame generated from the NumPy array is:")
print(data_df)
输出:
NumPy Data Array is:
[['' 'Mathematics' 'Economics']
['Sunny' '25' '23']
['Alice' '23' '24']]
The DataFrame generated from the NumPy array is:
Mathematics Economics
Sunny 25 23
Alice 23 24
我们在 NumPy 数组中得到了行索引和列名。我们选择第一行和第一列之后的所有值,并将其作为 data
参数提供给 pandas.DataFrame()
函数,同时选择第二行的所有第一列值,并将其作为 index
参数传递。同理,我们从第二列中选取所有第一行的值,并将其作为 columns
参数传递,设置列名。
numpy.array()
在制作 NumPy 数组的同时,将整数值转换为字符串值,以保证数组的数据格式相同。我们使用 numpy.int_()
函数将数据值转换回整数类型。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串