gpt4 book ai didi

python - 将带有数字列的 Pandas 数据框保存为 Excel 中的文本

转载 作者:行者123 更新时间:2023-12-04 17:33:37 25 4
gpt4 key购买 nike

我正在尝试将 Pandas 数据框导出到所有列均为文本格式的 Excel。默认情况下,pandas.to_excel() 函数让 Excel 决定数据类型。导出具有 [1,2,'w'] 的列会导致包含 1 和 2 的单元格为数字,而包含 'w' 的单元格为文本。我希望列中的所有行都是文本(即['1','2','w'])。

我能够通过使用 .astype(str) 将我需要的列分配为文本来解决问题。但是,如果数据很大,我担心会遇到性能问题。如果我理解正确, df[col] = df[col].astype(str) 会复制数据,但效率不高。

import pandas as pd

df = pd.DataFrame({'a':[1,2,'w'], 'b':['x','y','z']})

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

df.to_excel(r'c:\tmp\test.xlsx')

有没有更有效的方法来做到这一点?

我搜索了几次,没有看到任何关于此的内容。如果之前已经回答过,请原谅我。这是我的第一篇文章,我很高兴参加这个很酷的论坛。

编辑:感谢我收到的评论,我看到 Converting a series of ints to strings - Why is apply much faster than astype?给了我其他的 astype(str) 选项。这真的很有用。我还想知道 astype(str) 是否效率低下,因为它复制了数据,我现在发现它没有。

最佳答案

我认为这种方法不会出现性能问题,因为数据不会被复制而是被替换。您也可以转换整个 dataframe进入 string键入使用

df = df.astype(str)

关于python - 将带有数字列的 Pandas 数据框保存为 Excel 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57633032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com