我正在尝试将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)是否效率低下,因为它复制了数据,现在我发现它没有。在
我不认为这种方法不会有性能问题,因为数据不是被复制而是被替换的。还可以使用将整个
dataframe
转换为string
类型相关问题 更多 >
编程相关推荐