首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在从pandas Dataframe中的混合dtype列中删除短划线字符串

正在从pandas Dataframe中的混合dtype列中删除短划线字符串
EN

Stack Overflow用户
提问于 2019-03-22 01:40:13
回答 2查看 5.9K关注 0票数 1

我有一个数据帧,可能的对象与数值混合在一起。

我的目标是将每个值都变成一个简单的整数,然而,其中一些值在数字之间有-

一个最小的工作示例如下所示:

代码语言:javascript
复制
import pandas as pd

d = {'API':[float(4433), float(3344), 6666, '6-9-11', '8-0-11', 9990]}
df = pd.DataFrame(d)

我试着:

代码语言:javascript
复制
df['API'] = df['API'].str.replace('-','')

但是这给我留下了数值类型的nan,因为它只在整个框架中搜索字符串。

输出为:

代码语言:javascript
复制
API

nan
nan
nan
6911
8011
nan

我想要一个输出:

代码语言:javascript
复制
API

4433
3344
6666
6911
8011
9990

其中所有类型都是int

有没有一种简单的方法,可以只处理Series中的对象类型,而不考虑实际的数字?我在大型数据集(300,000+行)上使用这种技术,因此lambdaseries operations之类的东西比循环搜索更可取。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-22 01:41:49

regex=True中使用df.replace

代码语言:javascript
复制
df = df.replace('-', '', regex=True).astype(int)

    API
0   4433
1   3344
2   6666
3   6911
4   8011
5   9990
票数 4
EN

Stack Overflow用户

发布于 2019-03-22 02:13:14

另外,

代码语言:javascript
复制
df['API'] = df['API'].astype(str).apply(lambda x: x.replace('-', '')).astype(int)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55286281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档