我有我认为的超级基本问题,但我无法找到解决方案。简而言之,我在csv
列中有一列是数字列表。这csv
由pandas
与to_csv
生成。当试图用read_csv
重新读取它时,它会自动将此数字列表转换为string
。将字符串列表转换为熊猫列表中的浮点数
当然后试图使用它,我显然会得到错误。当我尝试使用to_numeric
函数时,我也会遇到错误,因为它是一个列表,而不是一个数字。
有什么办法解决这个问题吗?发布代码下面的表格,但可能不是非常有帮助:
def write_func(dataset):
features = featurize_list(dataset[column]) # Returns numpy array
new_dataset = dataset.copy() # Don't want to modify the underlying dataframe
new_dataset['Text'] = features
new_dataset.rename(columns={'Text': 'Features'}, inplace=True)
write(new_dataset, dataset_name)
def write(new_dataset, dataset_name):
dump_location = feature_set_location(dataset_name, self)
featurized_dataset.to_csv(dump_location)
def read_func(read_location):
df = pd.read_csv(read_location)
df['Features'] = df['Features'].apply(pd.to_numeric)
的Features
列是一个问题。当我尝试目前read_func运行apply
我得到这个错误:
ValueError: Unable to parse string "[0.019636873200000002, 0.10695576670000001,...]" at position 0
我不能碰到这个问题的第一人,是有一些方法在读来处理这种/写入时间?
这种产品是否安全? 'literal_eval'勾画了我很多,我没有完全控制这里的输入文件。他们从远程服务器上被拉下来。 –
我同样通过'eval'勾勒出来......'literal_eval'旨在通过安全解析文字来缓解恐惧。看到[***这篇文章***](http://stackoverflow.com/a/15197698/2336654) – piRSquared
这似乎...可行,但这是否真的是唯一的方法吗?对于感觉像一个非常基本的用例的东西来说,这真是太神秘了。要清楚这*做*工作。 –