У меня есть файл csv с двумя форматированными столбцами, которые в настоящее время считаются объектами:
содержит процентные значения, которые читаются как строки, такие как "0,01%". % Всегда находится в конце.
содержит значения валюты, которые читаются как строка типа "$ 1234,5".
Я попытался использовать функцию split, чтобы удалить% или $ внутри фрейма данных, а затем использовать float для результата split. Это напечатает правильный результат, но не присвоит значение. Он также дает ошибку типа, в которой float не имеет функции split, хотя я делаю разделение до float????
Попробуй это:
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)
Вероятно, вы ищете метод apply.
С
df['first_col'] = df['first_col'].apply(lambda x: float(x.strip('%'))