在pandas中截断列宽

2024-03-29 08:35:45 发布

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

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


Tags: 文件csv方法字符串pandas宽度字符个字符
1条回答
网友
1楼 · 发布于 2024-03-29 08:35:45

如果可以将整个内容读入内存,则可以使用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]

会更好,但我不知道转换器是逐行调用还是在整列事实之后调用。

相关问题 更多 >