Я работаю как с R, так и с Python, и я хочу написать одну из моих панд DataFrames как перо, чтобы мне было легче работать с ней в R. Однако, когда я пытаюсь написать это как перо, я получаюследующая ошибка:
ArrowInvalid: trying to convert NumPy type float64 but got float32
Я дважды проверил типы столбцов, и они уже плавают 64:
In[1]
df.dtypes
Out[1]
id Object
cluster int64
vector_x float64
vector_y float64
Я получаю одну и ту же ошибку независимо от использования feather.write_dataframe(df, "path/df.feather")
или df.to_feather("path/df.feather")
.
Я видел это на GitHub, но не понял, было ли это связано: https://issues.apache.org/jira/browse/ARROW-1345 и https://github.com/apache/arrow/issues/1430
В конце концов, я могу просто сохранить его какCSV и изменить столбцы в R (или просто сделать весь анализ в Python), но я надеялся использовать это.
Редактировать 1:
Все еще имеята же проблема, несмотря на замечательный совет, приведенный ниже, поэтому обновите то, что я пробовал.
df[['vector_x', 'vector_y', 'cluster']] = df[['vector_x', 'vector_y', 'cluster']].astype(float)
df[['doc_id', 'text']] = df[['doc_id', 'text']].astype(str)
df[['doc_vector', 'doc_vectors_2d']] = df[['doc_vector', 'doc_vectors_2d']].astype(list)
df.dtypes
Out[1]:
doc_id object
text object
doc_vector object
cluster float64
doc_vectors_2d object
vector_x float64
vector_y float64
dtype: object
Edit 2:
После долгих поисков кажется, что проблемачто мой столбец кластера является типом списка, состоящим из целых чисел int64.Итак, я думаю, что настоящий квест в том, поддерживает ли перо формат списки?