我有我認爲的超級基本問題,但我無法找到解決方案。簡而言之,我在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
這似乎...可行,但這是否真的是唯一的方法嗎?對於感覺像一個非常基本的用例的東西來說,這真是太神祕了。要清楚這*做*工作。 –