Как удалить только цифры из строки в столбцах Pandas - PullRequest
0 голосов
/ 01 марта 2020

Я эколог-геолог, и я только изучаю Python / Pandas. У меня есть данные аналитических данных в Pandas, аналогичные приведенному ниже примеру:

starting dataframe

Я хочу удалить только цифры из Total_dl, оставив пределы обнаружения (цифры с <). Это будет последний фрейм данных, который я ищу: </p>

final dataframe I'm looking for

Поскольку столбец является строкой, я не уверен, как анализировать столбец. Любая помощь будет оценена.

Спасибо

Ответы [ 4 ]

0 голосов
/ 01 марта 2020

Скажем, ваш фрейм данных называется df, тогда это поможет вам

import numpy as np
nan_condition = df[~df["Total_dl"].str.contains(">")]
df.loc[nan_condition,"Total_dl"] = np.nan
0 голосов
/ 01 марта 2020

Вы можете использовать это


data = data.loc[data[column] > x]

0 голосов
/ 01 марта 2020

Один из способов сделать это. Не уверен, насколько это хорошее решение:

df['Total_dl'] = df['Total_dl'].apply(lambda o: o if '<' in str(o) else np.nan)

Использование функции, которая делает то же самое вместо:

>>> df
   SampleID Total_dl
0    A-1-0'      2.5
1  A-1-0.5'   <0.021
>>> df.dtypes
SampleID    object
Total_dl    object
dtype: object
>>> def foo(o):
...     if '<' in str(o):
...         return o
...     else:
...         return np.nan
...         
>>> df['Total_dl'] = df['Total_dl'].apply(foo)
>>> df
   SampleID Total_dl
0    A-1-0'      NaN
1  A-1-0.5'   <0.021
>>> 
0 голосов
/ 01 марта 2020

Следующие действия должны помочь:

import numpy as np


mask = df.Total_dll < 1.
df.loc[mask, 'Total_dll'] = np.nan

Если Total_dll имеет тип string, вы можете попробовать следующее:

import numpy as np


df.str.startswith('<')
df.loc[df.Total_dll.str.startswith('<'), np.nan]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...