迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

将 NumPy 数组转换为 Pandas DataFrame

作者:迹忆客 最近更新:2024/04/21 浏览次数:

本教程介绍了如何使用 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() 方法的 indexcolumns 参数来设置列名和行索引。

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 转换为 Spark DataFrame

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

计算 Pandas DataFrame 列的数量

发布时间:2024/04/20 浏览次数:113 分类:Python

本教程解释了如何使用各种方法计算 Pandas DataFrame 的列数,例如使用 shape 属性、列属性、使用类型转换和使用 info() 方法。

更改 Pandas DataFrame 列的顺序

发布时间:2024/04/20 浏览次数:116 分类:Python

在这篇文章中,我们将介绍如何使用 python pandas DataFrame 来更改列的顺序。在 pandas 中,使用 Python 中的 reindex() 方法重新排序或重新排列列。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便