gpt4 book ai didi

python - 使用 Pandas 根据文本条件向列添加字符

转载 作者:行者123 更新时间:2023-12-02 01:26:52 25 4
gpt4 key购买 nike

我正在尝试使用 pandas 进行一些数据清理。想象一下,我有一个数据框,它有一个名为“Number”的列,其中包含如下数据:“1203.10”、“4221”、“3452.11”等。我想在数字前添加一个“M”,它有一个点和最后一个零。对于此示例,它将把“1203.10”变成“M1203.10”。

我知道如何获取包含带点并以零结尾的数字的数据框。

假设数据框名为“df”。

pointzero = '[0-9]+[.][0-9]+[0]$'
pz = df[df.Number.str.match(pointzero)]

但我不确定如何在“pz”之后在开头添加“M”。我知道的唯一方法是使用 for 循环,但我认为有更好的方法。任何建议都会很棒!

最佳答案

您可以使用 boolean indexing :

pointzero = '[0-9]+[.][0-9]+[0]$'
m = df.Number.str.match(pointzero)

df.loc[m, 'Number'] = 'M' + df.loc[m, 'Number']

或者,使用 str.replace和一个稍微不同的正则表达式:

pointzero = '([0-9]+[.][0-9]+[0]$)'
df['Number'] = df['Number'].str.replace(pointzero, r'M\1', regex=True))

例子:

     Number
0 M1203.10
1 4221
2 3452.11

关于python - 使用 Pandas 根据文本条件向列添加字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74343024/

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