我需要编写一个将列表作为值的字典到CSV中。 输入如下:
d = {'a': [1.11, 2.22, 3.33],
'b': [4.44, 5.55, 6.66],
'c': [7.77, 8.88, 9.99]}
输出应如下所示:
a 1.11 2.22 3.33
b 4.44 5.55 6.66
c 7.77 8.88 9.99
我的代码是
with open('Test.csv', 'w') as f:
for key in d.keys():
f.write("%s,%s\n"%(key,d[key]))
哪个输出:
a [1.11 2.22 3.33]
b [4.44 5.55 6.66]
c [7.77 8.88 9.99]
在存储到csv文件中时,如何修改代码以删除括号?我知道我可以稍后浏览该文件并删除括号,但是我想在写入该文件之前或期间进行操作。
答案 0 :(得分:3)
尝试:
for key, values in d.items():
f.write("%s %s\n"%(key, " ".join([str(v) for v in values])))
您不能仅join()
d [key],因为它们是数字,必须转换为字符串。
但是,我真的不认为您希望将其分隔为空格,因为您已经说过想要CSV。如果要用逗号分隔,则应为:
for key, values in d.items():
f.write("%s, %s\n"%(key, ", ".join([str(v) for v in values])))
答案 1 :(得分:2)
d [key]是一个列表,您可以将其与空格字符连接以获得所需的字符串:
f.write("%s,%s\n"%(key, " ".join(d[key])))
顺便说一句,如果您打算做CSV,请看一下标准模块: https://docs.python.org/3/library/csv.html
答案 2 :(得分:0)
这是我尝试删除数据框列中特定字符的代码。
FILE_PATH = "***.csv"
DONE_PATH = "done.csv"
SPECIFIC_COL = "SPECIFIC_COL"
REMOVE_CHAR = 'Â'
df = pd.read_csv(FILE_PATH,encoding='utf-8')
df[SPECIFIC_COL] = df[SPECIFIC_COL].str.replace(,'')
# Before writing to the csv, check if it exists or not
try:
os.remove(DONE_PATH)
except OSError:
pass
df.to_csv(DONE_PATH)