【发布时间】:2018-04-16 02:33:57
【问题描述】:
一段时间以来,我一直在试图找出一个我遇到的问题,但不知何故我找不到解决方案。
我创建了一个已经填充了值的 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
【问题讨论】:
-
您需要
df[col_name] = x.astype(str)吗? -
您好,jezrael,谢谢您的回答。上面的例子有效,唯一的问题是它将字符串添加到我的 df 而不是数组。
标签: python arrays pandas numpy dataframe