簡體   English   中英

從pandas Dataframe中的混合dtype列中刪除破折號字符串

[英]Removing dash string from mixed dtype column in pandas Dataframe

我有一個數據框,其中可能的對象與數值混合在一起。

我的目標是每一個值更改為一個簡單的整數,但是,一些值有-數字之間。

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

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.replaceregex=True

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

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

也,

df['API'] = df['API'].astype(str).apply(lambda x: x.replace('-', '')).astype(int)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM