我的数据框有以下数据:
company,standard,returns
aaa,b1,10%
bbb,b2,20%
我必须从%
列中删除returns
。
答案 0 :(得分:4)
首先按indexing with str删除每个字符串的最后一个值,然后转换为int
或float
:
#if int values
print (df['returns'].str[:-1].astype(int))
#if flaot values
print (df['returns'].str[:-1].astype(float))
样品:
print (df)
company standard returns
0 tata b1 10%
1 dell b2 10%
#if int values
df['returns'] = (df['returns'].str[:-1].astype(int))
print (df)
company standard returns
0 tata b1 10
1 dell b2 10
str.strip
的另一个解决方案:
df['returns'] = (df['returns'].str.strip('%').astype(int))
print (df)
company standard returns
0 tata b1 10
1 dell b2 10
答案 1 :(得分:1)
使用矢量化str.replace
:
In [225]:
df['returns'] = df['returns'].str.replace('\%','')
df
Out[225]:
company standard returns
0 aaa b1 10
1 bbb b2 20
您可以使用dtype
或astype(int)
astype(float)