使用pandas将数据帧写入excel是不正确的

时间:2016-05-24 15:22:24

标签: python excel pandas

我有df

day
2016-03-01    [00051f002f5a0c179d7ce191ca2c6401, 00102b98bd9...
2016-03-02    [00102b98bd9e71da3cf23fd1f599408d, 0012ea90a6d...
2016-03-03    [00051f002f5a0c179d7ce191ca2c6401, 00102b98bd9...

我想把它写到excel,但之后我得到了

day 
2016-03-01  "['00051f002f5a0c179d7ce191ca2c6401'     '00102b98bd9e71da3cf23fd1f599408d'
 '00108f5c5de701ac4386e717a4d07d5b' ..., 'null' 'test017' 'undefined']"
2016-03-02  "['00102b98bd9e71da3cf23fd1f599408d'  '0012ea90a6deb4eeb2924fb13e844136'
 '0019b08bc9bb8da21f3b8ecc945a67d3' ..., 'test4' 'undefined'
 'xx6da37101dffabe00e5d636c01719b6']"
2016-03-03  "['00051f002f5a0c179d7ce191ca2c6401'     '00102b98bd9e71da3cf23fd1f599408d'
 '0012ea90a6deb4eeb2924fb13e844136' ..., 'test017' 'undefined'
 'xx6da37101dffabe00e5d636c01719b6']"

我使用了df.to_excel('name.xlsx')。我不明白,为什么它在没有逗号的情况下在第二列中编写了列表。我之前做过它并按预期工作,但现在它没有。

1 个答案:

答案 0 :(得分:1)

你应该可以使用:

df['ColumnID'] = df['ColumnID'].astype(str)

在列上,列表将其视为字符串,应保留逗号。

以下是一个完整的工作示例:

# create sample dataframe
df = pd.DataFrame({'day':[1,2,3],'list':[['a','b','c'],['d','e','f'],['g','h','i']]})

# convert list column to string
df['list'] = df['list'].astype(str)

# export excel file
writer = pd.ExcelWriter("out.xlsx", engine = 'xlsxwriter')
df.to_excel(writer, sheet_name="data")
writer.save()

这导致以下excel文件:

enter image description here