如何将多个NumPy数组转换为Pandas DataFrame?含两数组转列需求
将NumPy数组转换为Pandas DataFrame的正确方法
嘿,我来帮你搞定这个问题!通常把NumPy数组转成Pandas DataFrame时,结果和预期不符,大概率是数组维度或者传入方式的问题——比如不小心把数组当成行来处理了,但你实际想要的是列。
我先拿常见的场景举例,假设你的两个数组是这样的:
import numpy as np import pandas as pd # 你的两个示例数组 actual_output = np.array([10, 20, 30, 40]) expected_output = np.array([15, 25, 35, 45])
下面几种方法都能帮你得到列形式的预期DataFrame:
方法1:用字典直接构造(最直观)
直接把每个数组对应到DataFrame的列名,这种方式可读性最高:
df = pd.DataFrame({ '实际输出': actual_output, '预期输出': expected_output })
方法2:用np.column_stack堆叠数组后转换
先把两个一维数组按列方向堆叠成二维数组,再转成DataFrame:
# 按列堆叠数组 stacked_data = np.column_stack((actual_output, expected_output)) # 转换并指定列名 df = pd.DataFrame(stacked_data, columns=['实际输出', '预期输出'])
方法3:用pd.concat合并Series
把每个数组先转成带列名的Series,再按列方向合并:
s_actual = pd.Series(actual_output, name='实际输出') s_expected = pd.Series(expected_output, name='预期输出') df = pd.concat([s_actual, s_expected], axis=1)
不管用哪种方法,只要两个数组的长度一致,就能完美对齐行,得到你想要的列形式DataFrame。如果你的数组是二维的,只要确保它们的行数相同,这些方法同样适用~
内容的提问来源于stack exchange,提问作者Atihska
相关产品推荐
相关产品推荐

