python - 将 np 数组添加到现有的 pandas 数据框

标签 python arrays pandas numpy dataframe

一段时间以来,我一直在努力解决遇到的问题,但不知何故我找不到解决方案。

我创建了一个已经填充了值的 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/

相关文章:

python - 正确的数据加载器设置可训练 fastrcnn-resnet50 以使用 pytorch 进行对象检测

python - Excel - 查找前一行和各种范围大小的最大值

java - 如何知道一个数字在数组中出现的频率

python - 由于无法选择表 id 属性,如何使用 BeautifulSoup 抓取表?

python - 分布式 Tensorflow 中的异步训练如何工作?

python - numpy-2d 中接近点的快速融合(矢量化)

javascript - 不确定将表单输入与数组进行比较的正确方法

python - 具有其他列条件的新列

python - 如何将 Pandas DataFrame 转换为 Pandas ML ModelFrame?

python - 从行中删除任何 0 值,按行降序排列值,对于行中的每个非 0 值,将索引、列名和分数返回到新的 df