Проверка странного элемента в наборе данных - PullRequest
1 голос
/ 02 мая 2019

Я хочу проверить странные категориальные элементы в кадре данных с меньшим количеством строк в Python

Я пытался использовать следующие коды, чтобы показать странные предметы.

for i in range(data.shape[1]):
  if data[data.columns[i]].dtype == "object":
    print(data[data.columns[i]].value_counts()) 

Существует ли какой-либо метод, использующий меньше строк для проверки категориальных данных?

1 Ответ

0 голосов
/ 06 мая 2019

Если вы хотите распечатать все уникальные записи столбца, я бы порекомендовал использовать метод unique ( документы )

>>> a = pd.DataFrame({'sex':['m','f','m','m','m', 'f', 'booooy']})
>>> a.loc[:,'sex'].unique()
Out[1]: array(['m', 'f', 'booooy'], dtype=object)

Чтобы изменить запись booooy на mВы можете использовать метод re.sub ( docs )

>>> a.loc[:,'sex'].apply(lambda x: re.sub(r'booooy','m', x))
Out[2]: 
0    m
1    f
2    m
3    m
4    m
5    f
6    m
Name: sex, dtype: object

Если у вас много вызовов re.sub - вместо их последовательного применения вы можете поместить их в функцию

>>> def filter_text(x):
...    x = re.sub(r'booooy','m',x)
...    x = re.sub(r'girl','f',x)
...    # . . . . . .
...    return x
>>> a.loc[:,'sex'].apply(filter_text)
Out[3]: 
0    m
1    f
2    m
3    m
4    m
5    f
6    m
Name: sex, dtype: object

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

...