我正在尝试将结果附加到正在进行的csv文件中。每个结果都以nd.array的形式出现:
download_root = 'https://raw.githubusercontent.com/ageron/hanson-ml/master/'
housing_path = os.path.join('datasets','housing')
housing_url = download_root+'datasets/housing/housing.tgz'
def fetch_housing(housing_url = housing_url,housing_path=housing_path):
if not os.path.isdir(housing_path):
os.makedirs(housing_path)
tgz_path = os.path.join(housing_path,'housing.tgz')
urllib.request.urlretrieve(housing_url,tgz_path)
housing_tgz = tarfile.open(tgz_path)
housing_tgz.extractall(path=housing_path)
housing_tgz.close()
最初我尝试过
[IN]: Print(savearray)
[OUT]: [[ 0.55219001 0.39838119]]
但是,每次保存时,这都会覆盖旧数据,因此,我尝试像这样附加数据:
np.savetxt('flux_ratios.csv', savearray,delimiter=",")
(在某种意义上)这是追加,但是它将数值数据保存为奇怪的字符,如以下屏幕截图所示:
我不知道这是为什么或如何发生,因此任何帮助将不胜感激!
答案 0 :(得分:1)
首先,np.save
不会写文本,而np.savetxt
会写文本。您正在尝试将二进制文件与文本结合在一起,这就是为什么当您尝试读取文件时会出现奇数字符的原因。
您可以将np.save(f, 'a', savearray)
更改为np.savetxt(f, savearray, delimiter=',')
。
否则,您也可以考虑在附加模式下使用pandas.to_csv
。