替换Python3中的第一个字符串

2024-04-25 12:53:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个熊猫系列:

0          $233.94
1          $214.14
2          $208.74
3          $232.14
4          $187.15
5          $262.73
6          $176.35
7          $266.33
8          $174.55
9          $221.34
10         $199.74
11         $228.54
12         $228.54
13         $196.15
14         $269.93
15         $257.33
16         $246.53
17         $226.74

我想去掉美元符号,这样我就可以把值转换成数字。为了做到这一点,我做了一个函数:

def strip_dollar(series):
    for number in dollar:
        if number[0] == '$':
            number[0].replace('$', ' ')

    return dollar

这个函数将原封不动地返回原始序列,没有任何变化,我也不知道为什么。你知道吗

你有没有什么好主意?你知道吗

提前谢谢


Tags: 函数innumberforreturnifdef符号
3条回答

使用str.replace("$", "")

例如:

import pandas as pd
df = pd.DataFrame({"Col" : ["$233.94", "$214.14"]})
df["Col"] = pd.to_numeric(df["Col"].str.replace("$", ""))
print(df) 

输出:

      Col
0  233.94
1  214.14

代码:

ser = pd.Series(data=['$123', '$234', '$232', '$6767'])
def rmDollar(x):
    return x[1:]
serWithoutDollar = ser.apply(rmDollar)
serWithoutDollar

输出:

0     123
1     234
2     232
3    6767
dtype: object

希望能有帮助!

使用^{}并转换为floats:

s = s.str.lstrip('$').astype(float)
print (s)
0     233.94
1     214.14
2     208.74
3     232.14
4     187.15
5     262.73
6     176.35
7     266.33
8     174.55
9     221.34
10    199.74
11    228.54
12    228.54
13    196.15
14    269.93
15    257.33
16    246.53
17    226.74
Name: A, dtype: float64

设置

s = pd.Series(['$233.94', '$214.14', '$208.74', '$232.14', '$187.15', '$262.73', '$176.35', '$266.33', '$174.55', '$221.34', '$199.74', '$228.54', '$228.54', '$196.15', '$269.93', '$257.33', '$246.53', '$226.74'])
print (s)
0     $233.94
1     $214.14
2     $208.74
3     $232.14
4     $187.15
5     $262.73
6     $176.35
7     $266.33
8     $174.55
9     $221.34
10    $199.74
11    $228.54
12    $228.54
13    $196.15
14    $269.93
15    $257.33
16    $246.53
17    $226.74
dtype: object

相关问题 更多 >