一段时间以来,我一直在努力解决遇到的问题,但不知何故我找不到解决方案。
我创建了一个已经填充了值的 pandas 数据框,假设维度 (4,3)
df=
A B C
0 valX valX valX
1 valY valY valY
2 valZ valZ valZ
3 valW valW valW
我现在想做的是附加十个额外的列,每个列包含一个 numpy 数组,其中填充了 38 个零。
当我首先将数组转换为字符串然后将其添加到原始 df 时,我的解决方案似乎有效。
但是,Pandas 不接受普通的 numpy 数组。 我需要列的值是一个 numpy 数组,因为稍后我将对它们进行一些 sklearn 计算。
稍后在我的代码中,我将某些列替换为某些字符的单热编码。其余列充当零填充。
我的代码示例(适用于添加 10 列):
#create empty array
x = np.zeros(38)
for i in range(0, 10):
col_name = "char_" + str(i)
df[col_name] = str(x)
这里的问题是我需要将 x 转换为字符串。如果我将它保存为一个 numpy 数组,它会抛出这个错误:
ValueError: Length of values does not match length of index
最佳答案
使用:
x = np.zeros(38)
for i in range(0, 10):
col_name = "char_" + str(i)
df[col_name] = pd.Series([x], index=df.index)
print (type(df.loc[0,'char_9']))
<class 'numpy.ndarray'>
关于python - 将 np 数组添加到现有的 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47094437/