截断pandas中的列宽

Luk*_*uke 5 python pandas

我正在将大型csv文件读入pandas,其中一些包含数千个字符的String列.有没有快速的方法来限制列的宽度,即只保留前100个字符?

DSM*_*DSM 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]
Run Code Online (Sandbox Code Playgroud)

另请注意,您可以使用长度系列

>>> df["b"].str.len()
0    10
Name: b, dtype: int64
Run Code Online (Sandbox Code Playgroud)

我原本想知道是否

>>> pd.read_csv("toolong.csv", converters={"b": lambda x: x[:5]})
   a      b  c
0  1  12563  2

[1 rows x 3 columns]
Run Code Online (Sandbox Code Playgroud)

会更好但我实际上并不知道转换器是逐行调用还是在整个列之后调用.