将带有数字列的Pandas数据帧另存为Ex中的文本

2024-03-29 06:41:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将Pandas数据框导出到Excel,其中所有列都是文本格式。默认情况下pandas.to\u卓越()函数允许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)是否效率低下,因为它复制了数据,现在我发现它没有。在


Tags: to数据函数文本格式文本pandasdf情况
1条回答
网友
1楼 · 发布于 2024-03-29 06:41:53

我不认为这种方法不会有性能问题,因为数据不是被复制而是被替换的。还可以使用将整个dataframe转换为string类型

df = df.astype(str)

相关问题 更多 >