我准备将一些数据投入到R.数据来自Python导出为CSV文件。 R正在读取数据只有两列,因为numpy数组被导出到CSV中,括号围绕着它,如下所示:
loudness_momentary,"[-83.84079859 -83.67103055 -83.80533271]"
我认为问题正在产生,因为当我将数据写入CSV时,列表中有一个"列表"发生这样的事情:
data = [
['loudness_momentary', loudness_momentary],
['loudness_short', loudness_short],
['loudness_integrated', loudness_integrated],
['lra', lra],
['crest_factor_1s', crest_factor_1s],
['crest_factor_100ms', crest_factor_100ms],
['spectral_centroid', spectral_centroid],
['spectral_spread', spectral_spread],
['spectral_skewness', spectral_skewness],
['spectral_kurtosis', spectral_kurtosis],
['zcr', zcr],
['spectral_rolloff', spectral_rolloff],
['spectral_crest_factor', spectral_crest_factor],
['spectral_flatness', spectral_flatness],
['spectral_flux', spectral_flux]
]
# Write to CSV File
with open(filepath + "/" + file_name + ".csv", "wb") as stem_data:
w = csv.writer(stem_data, delimiter=',')
print "Writing %s to csv" % file_name
w.writerows(data)
stem_data.close()
我的目标是给每一行一个"标题"让我知道数据是什么。如果我删除列表中的"列表"问题并且只写一行,数据正常写入。
基本上,我试图输出带有"字符串"的CSV文件。每行的标题,其后的每一行都是一个没有括号或引号的numpy数组,所以我可以很好地把它放到R中。
任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
将data
转换为列表列表:
data = [[row[0]]+row[1].tolist() for row in data]
例如,如果data
以类似
In [34]: data = [['foo', np.array([1,2,3])], ['bar', np.array([1,2,3])]]
然后
In [35]: data = [[row[0]]+row[1].tolist() for row in data]
将data
转换为此列表列表:
In [36]: data
Out[36]: [['foo', 1, 2, 3], ['bar', 1, 2, 3]]
顺便说一下,使用with-statement
打开文件是件好事。但请注意,当执行流程离开with-block
时,Python会自动关闭文件。因此,在离开stem_data.close()
后明确调用with-block
是不必要的。