Все столбцы в моем наборе данных кажутся плавающими. Некоторые содержат такие значения, как '20. или 11 '
Как можно выборочно и быстро удалить точку и пробел, не влияя на другие значения в столбце, такие как «24,4» или «12,5»?
Я пробовал несколько решений, но ни одно из них не помогло.
Моя цель - поменять, например, 12 год. 'до' 12 ', для каждого значения в каждой ячейке, где'. 'появляется.
3 ответа
Вы можете использовать регулярные выражения, чтобы сделать это с заменой, т.е.
df.replace('\.(?!\d)','',regex=True)
Если у вас есть датафрейм, как.
df = pd.DataFrame(['12.','13.','14.1','15.5'])
df.replace('\.(?!\d)','',regex=True) # inplace = True if you want to change main dataframe.
0 0 12 1 13 2 14.1 3 15.5
Если ваш столбец содержит строку:
>>> a
0 1
0 1 12.
1 2 14.5
2 3 15.
3 4 16.3
>>> a[1]=[i.replace('. ', '') for i in a[1]]
>>> a
0 1
0 1 12
1 2 14.5
2 3 15
3 4 16.3
Если есть float, вы можете создать новый список со смешанным типом (int и float):
>>> b=[int(i) if i.is_integer() else float(i) for i in a[1]]
>>> b
[12, 14.5, 15, 16.3]
Но вы не можете сделать это во фрейме данных:
>>> a[1]=[int(i) if i.is_integer() else float(i) for i in a[1]]
>>> a
0 1
0 1.0 12.0
1 2.0 14.5
2 3.0 15.0
3 4.0 16.3
Вы можете установить пользовательскую функцию форматирования с плавающей точкой для панд, например:
>>> import pandas as pd
>>> df = pd.DataFrame({'col1':[1, 2, 3], 'col2':[2.0, 1.0, 4.1]})
>>> pd.set_option('display.float_format', lambda x: ('%f' % x).rstrip('.0'))
>>> df
col1 col2
0 1 2
1 2 1
2 3 4.1
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.