在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()
方法来更改列名。