我正在将大型csv文件读入pandas,其中一些包含数千个字符的String列。有没有快速的方法来限制列的宽度,即只保留前100个字符?
答案 0 :(得分:11)
如果您可以将整个内容读入内存,则可以使用str
方法进行矢量操作:
>>> df = pd.read_csv("toolong.csv")
>>> df
a b c
0 1 1256378916212378918293 2
[1 rows x 3 columns]
>>> df["b"] = df["b"].str[:10]
>>> df
a b c
0 1 1256378916 2
[1 rows x 3 columns]
另请注意,您可以使用
获取长度系列>>> df["b"].str.len()
0 10
Name: b, dtype: int64
我原本想知道是否
>>> pd.read_csv("toolong.csv", converters={"b": lambda x: x[:5]})
a b c
0 1 12563 2
[1 rows x 3 columns]
会更好但我实际上并不知道转换器是逐行调用还是在整个列之后调用。