Как читать числовые данные в формате CSV в Pandas

1

У меня есть файл csv с двумя форматированными столбцами, которые в настоящее время считаются объектами:

  1. содержит процентные значения, которые читаются как строки, такие как "0,01%". % Всегда находится в конце.

  2. содержит значения валюты, которые читаются как строка типа "$ 1234,5".

Я попытался использовать функцию split, чтобы удалить% или $ внутри фрейма данных, а затем использовать float для результата split. Это напечатает правильный результат, но не присвоит значение. Он также дает ошибку типа, в которой float не имеет функции split, хотя я делаю разделение до float????

  • 0
    Спасибо всем, кто помог.
Теги:
pandas
csv

2 ответа

2
Лучший ответ

Попробуй это:

import pandas as pd

df = pd.read_csv('data.csv')

"""
The example df looks like this:
    col1     col2
0  3.04%  $100.25
1  0.15%    $1250
2  0.22%     $322
3  1.30%     $956
4  0.49%     $621
"""

df['col1'] = df['col1'].str.split('%', expand=True)[[0]]
df['col2'] = df['col2'].str.split('$', 1, expand=True)[[1]]

df[['col1', 'col2']] = df[['col1', 'col2']].apply(pd.to_numeric)
  • 0
    Это сработало! Спасибо за помощь!
1

Вероятно, вы ищете метод apply.

С

df['first_col'] = df['first_col'].apply(lambda x: float(x.strip('%'))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню