gpt4 book ai didi

python - 如何在 Pandas 数据框中的列开头替换非整数值

转载 作者:行者123 更新时间:2023-11-28 22:20:44 26 4
gpt4 key购买 nike

我有一个数据框,

 df=pd.DataFrame({"A":[1,2],"B":["a 1",np.nan]})

A B
0 1 a 1
1 2 NaN

我正在尝试将 df.B 值替换为其中的整数值。(即)如果我们有 abcd.. 1 我想将它转换为 1。

我试过了,

df.B.replace(np.nan,"").astype(str).str.replace('^[^\d]*', '').astype(int)

但它不转换空字符串。我正进入(状态ValueError: invalid literal for int() with base 10: '' 请帮助实现我的输出。提前致谢。

我的预期输出是,

     A   B
0 1 1
1 2 ''

最佳答案

如果想要提取 integer 并为所有其他值获取相同的值,请使用带有 try-except 的自定义函数:

def f(x):
try:
return int(x)
except ValueError:
return x

df.B = df.B.replace('^[^\d]*', '', regex=True).fillna('').apply(f)
print (df)
A B
0 1 1
1 2

print (df.B.apply(type))
0 <class 'int'>
1 <class 'str'>
Name: B, dtype: object

关于python - 如何在 Pandas 数据框中的列开头替换非整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48740563/

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