Замена первого строкового символа в Python 3 - PullRequest
0 голосов
/ 03 июля 2018

у меня есть серия панд, подобная этой:

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 голосов
/ 03 июля 2018

Использование str.replace("$", "")

Ex:

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
0 голосов
/ 03 июля 2018

КОД:

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

Надеюсь, это поможет!

0 голосов
/ 03 июля 2018

Используйте lstrip и конвертируйте в float s:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...