首页 > 解决方案 > 我想从包含 * 的值中删除 * 最后说 20*, 30* 从列中

问题描述

我有一个包含列中的值的数据框:

df = pd.DataFrame({
    'A': ['20*', 40, '30*' ],
    'B': ['abc', 'bar', 'xyz'],
})

我想删除*in 列A,结果应该是:['20', 40, '30' ]

如何做到这一点?

标签: pythonpandasdata-cleaning

解决方案


使用str.rstripwith fillna,注意你的列 A 是同时包含 string 和 int 的对象,这就是为什么str.rstrip会在 int 单元格上返回 NaN ,然后我们只需要使用fillna填充它

df.A=df.A.str.rstrip('*').fillna(df.A)

推荐阅读