Pandas实现dataframe和np.array的相互转换

  • Post category:Python

在Pandas中,DataFrame和NumPy中的ndarray是两种最常用的数据结构,因此它们的相互转换是非常常见的操作之一。

dataframe转换为np.array

将DataFrame转换为ndarray的最常用方法是使用values属性。 对于DataFrame df,只需使用以下命令即可将其转换为一个ndarray:

import pandas as pd

df = pd.DataFrame([[1, 2], [3, 4]])
arr = df.values

这个过程也可以通过引用NumPy包来实现。 在这种情况下,您可以使用asarray命令:

import numpy as np
import pandas as pd

df = pd.DataFrame([[1, 2], [3, 4]])
arr = np.asarray(df)

除了上述的两种方法,您还可以使用.to_numpy()方法将DataFrame转换为ndarray。 该方法可以在Pandas版本0.24.0及以上版本中使用。 在DataFrame df中,您可以使用以下命令将其转换为一个ndarray:

import pandas as pd

df = pd.DataFrame([[1, 2], [3, 4]])
arr = df.to_numpy()

np.array转换为dataframe

将NumPy中的ndarray转换为Pandas中的DataFrame的方法也非常简单。 对于ndarray arr,只需使用以下命令即可将其转换为一个DataFrame:

import pandas as pd
import numpy as np

arr = np.array([[1, 2], [3, 4]])
df = pd.DataFrame(arr)

您还可以为DataFrame设置列和索引,以获得更好的可读性。 例如:

import pandas as pd
import numpy as np

arr = np.array([[1, 2], [3, 4]])
df = pd.DataFrame(arr, columns=['A', 'B'], index=['x', 'y'])

这将产生以下DataFrame:

   A  B
x  1  2
y  3  4

除了上述方法,您还可以使用以下代码将ndarray转换为DataFrame:

import pandas as pd
import numpy as np

arr = np.array([[1, 2], [3, 4]])
df = pd.DataFrame.from_records(arr)

这将产生以下DataFrame:

   0  1
0  1  2
1  3  4

上述代码将列名的默认值设置为0和1。 您可以通过在创建DataFrame时使用names参数或在创建后使用.rename()方法来更改列名。