You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的Pandas中高效读取CSV并将所有列转为字符串?

高效将Pandas CSV所有列转为字符串的方法

嘿,你的问题很常见——手动逐个转换列类型不仅麻烦,还不够高效。这里有两种更优的方案,按推荐程度排序:

1. 读取时直接指定所有列为字符串(最推荐)

在pd.read_csv()里直接通过dtype参数指定所有列的类型为字符串,这样Pandas在读取文件时就直接按字符串解析,避免了后续的类型转换开销,这是最高效的方式:

df = pd.read_csv(
    "datafile.csv",
    sep="\s+",
    names=["lvl12", "etime", "press", "gph", "temp", "rh", "dpdp", "wdir", "wspd"],
    dtype=str  # 关键参数:所有列按字符串读取
)

2. 已读取DataFrame后批量转换

如果已经把文件读进DataFrame了,不用逐个列写astype(str),直接对整个DataFrame调用astype(str)即可,一行代码搞定:

# 覆盖原DataFrame,所有列转为字符串
df = df.astype(str)

# 或者不重新赋值,直接修改原DataFrame的所有列
df.loc[:, :] = df.astype(str)

顺便提个小坑

你原来的代码里,df['lvl12'].astype(str)这类写法不会修改原DataFrame的列类型,因为astype()默认返回一个新的Series,需要把结果赋值回原列才会生效,比如:

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

但显然批量处理的方式比这种逐个赋值高效得多。

内容的提问来源于stack exchange,提问作者Srivatsa Sharma G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:40:49