Python:在写入.csv文件时删除特定字符

时间:2020-05-05 21:11:48

标签: python csv dictionary

我需要编写一个将列表作为值的字典到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文件中时,如何修改代码以删除括号?我知道我可以稍后浏览该文件并删除括号,但是我想在写入该文件之前或期间进行操作。

3 个答案:

答案 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)
相关问题