从pandas datafram的整个列中删除某些字符串

2024-05-16 06:26:20 发布

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

我有一个pandas数据框df,内容如下:

  Date          Factor       Expiry         Grade  
0 12/31/1991    2.138766     3/30/1992      -3.33% 
1 10/29/1992    2.031381     2/8/1993       -1.06% 
2 5/20/1993     2.075670     6/4/1993       -6.38% 

我希望从Grade列的所有行中删除%字符。结果应该是这样的:

  Date          Factor     Expiry        Grade  
0 12/31/1991    2.138766   3/30/1992     -3.33 
1 10/29/1992    2.031381   2/8/1993      -1.06 
2 5/20/1993     2.075670   6/4/1993      -6.38 

我正在使用Python v3.6。


Tags: 数据内容pandasdfdate字符gradefactor
3条回答

为什么不str.rstrip()

df['Grade'] = df['Grade'].str.rstrip('%')

使用^{}将起作用:

df['Grade'] = df['Grade'].str.replace('%', '')

可以使用字符串切片,然后通过^{}转换为数值类型:

df['Grade'] = pd.to_numeric(df['Grade'].astype(str).str[:-1], errors='coerce')

建议转换为float,因为一系列字符串将保存在泛型且效率低下的object数据类型中,而数值类型允许矢量化操作。

相关问题 更多 >