как отделить int и str от списка в python - PullRequest
0 голосов
/ 27 января 2020

У меня есть список из 1000 записей. Список представляет собой смесь значений int и str, например

    df.head()
+-------+
|   0   |
+-------+
| asber |
| cdedg |
| hfowe |
| idcpo |
| fukvm |
| 123   |
| 456   |
| 789   |
| 012   |
+-------+

Я хочу, чтобы все числовые значения в одной стороне и все категориальные значения были в основном на другой стороне, создайте 2 новых списка по одному со всеми числовыми значениями и другой с категориальным значением

Пожалуйста, дайте мне знать, если есть решение для этого ..

Ответы [ 3 ]

2 голосов
/ 29 января 2020

Как вы описали в комментарии, ваши числовые значения также представлены в строковом формате.

valuelist = ['abc', 'xyz', '123', '456']
numberlist = list()
strlist = list()
for num in valuelist:
    if num.isdigit():
        numberlist.append(int(num)) #do type cast for conversion
    else:
        strlist.append(num)

теперь вы можете распечатывать или повторять оба списка в зависимости от вашего использования.

0 голосов
/ 29 января 2020

Вы можете сделать

categorical = [i for i in df["0"] if not i.isdigit()]
numerical = [int(i) for i in df["0"] if i.isdigit()]

Примечание: Хотя это выглядит компактно, оно использует 2 для циклов, вы можете сделать это с одиночным для l oop, как ответ @ HarshilJain

0 голосов
/ 27 января 2020

Для списка:

lis = [1, 2, 3, 'ab', 'bc', 'ac']
import numbers
lis1 = []
lis2 = []
for i in lis:
    if isinstance(i, numbers.Integral):
        lis1.append(i)
    else:
        lis2.append(i)

Это выдаст

lis1 = [1, 2, 3]
lis2 = ['ab', 'bc', 'ac']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...