gpt4 book ai didi

python - 从 pandas Dataframe 中的混合 dtype 列中删除破折号字符串

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:06 24 4
gpt4 key购买 nike

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

我的目标是将每个值更改为一个简单的整数,但是,其中一些值在数字之间有 -

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

import pandas as pd

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

我尝试:

df['API'] = df['API'].str.replace('-','')

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

输出是:

API

nan
nan
nan
6911
8011
nan

我想要一个输出:

API

4433
3344
6666
6911
8011
9990

所有类型都是 int

有没有一种简单的方法可以只处理系列中的对象类型,而保留实际的数字?我在大型数据集(超过 300,000 行)上使用这种技术,所以像 lambdaseries operations 这样的方法比循环搜索更受欢迎。

最佳答案

使用df.replace使用 regex=True

df = df.replace('-', '', regex=True).astype(int)

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

关于python - 从 pandas Dataframe 中的混合 dtype 列中删除破折号字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55286281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com