我正在使用pyspark并尝试使用csv来存储我的数据。我把我的numpy数组转换成一个Dataframe,格式如下:
label | 0 1 2 4 ... 768
---------------------------------------
1 | 0.12 0.23 0.31 0.72 ... 0.91
以此类推,将数组中“行向量”本身的每个值拆分为单独的列。这种格式与spark不兼容,它需要 features
全部在一列中。有没有一种方法可以将数组加载到这种格式的Dataframe中?例如:
label | Features
------------------------------------------
1 | [0.12,0.23,0.31,0.72,...,0.91]
我试着遵循这个线程的建议,其中详细说明了使用sparkapi合并列,但是当加载标签时,我得到了一个错误,因为标签成为向量的一部分,而不是一个向量 string
或者 int
价值观。
2条答案
按热度按时间rdrgkggo1#
我对spark一无所知,但你们中的大多数人想要一个包含一列列表的Dataframe
df['features'] = SOME_2D_LIST_OF_LISTS
```data = [[1,2,3],[4,5,6],[7,8,9]]
df = pd.DataFrame()
df['Features'] = data # now you have a column of lists
If for whatever reason you want each row value to itself be a numpy array add
df['Features'] = df['Features'].map(np.array)
gijlo24d2#
要做到这一点,请注意,我决定在浮点上使用整数以提高可读性:
选择所有功能列(我使用的
iloc
这里)并将它们转换为列表列表。然后用标签和新功能创建一个新的数据框: