替换python 3中的第一个字符串字符

时间:2018-07-03 12:20:39

标签: python string python-3.x pandas replace

我有一个这样的熊猫系列:

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

此功能使原始系列保持不变,没有任何变化,我也不知道为什么。

关于如何正确解决这个问题的任何想法?

预先感谢

3 个答案:

答案 0 :(得分:6)

使用lstrip并转换为float

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

答案 1 :(得分:2)

使用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

答案 2 :(得分:2)

代码:

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

希望有帮助!