Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 02.05.2022
Сообщений: 80

Как дропнуть те столбцы, которые имеют числовые значения или стринговые значения?

04.07.2022, 08:10. Показов 1805. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как дропнуть те столбцы, которые имеют числовые значения или стринговые значения?
Отдельно сделать для числовых и стринговых значений
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import pandas as pd
 
df = pd.DataFrame.from_dict({'Name'  : ['May21', 'James', 'Adi22', 'Hello', 'Girl90'],
                             'Volume': [23, 12, 11, 0, 56],
                             'Value' : [21321, 12311, 4435, 32454, 654654]})
print(df)
 
     Name  Volume   Value
0   May21      23   21321
1   James      12   12311
2   Adi22      11    4435
3   Hello       0   32454
4  Girl90      56  654654
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2022, 08:10
Ответы с готовыми решениями:

Group by как обьединить стринговые значения?
Хотелось бы в Примечание добавлять значения из Обозначение? Что бвывает похожее Sum только для стрингового значения чтобы в Примечание в...

Как заменить числовые значения в таблице или запросе на ноль или пустые ячейки
Приветствую всех. У меня чем тупее проблема, тем труднее копать. Нужно заменить числа в поле запроса/таблицы на 0 или пусто, т. е....

Если при каком-либо х некоторые из выражений не имеют смысла, вывести сообщение об этом и сравнивать значения только тех, которые имеют смысл
Помогите плз Если при каком-либо х некоторые из выражений не имеют смысла, вывести сообщение об этом и сравнивать значения только тех,...

14
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
04.07.2022, 16:09
Лучший ответ Сообщение было отмечено timaKazh как решение

Решение

По поводу числовых:
Python
1
2
from pandas.api.types import is_numeric_dtype
df.drop([column for column in df.columns if is_numeric_dtype(df.dtypes[column])], axis =1)
По поводу "стринговых" проясните, что конкретно имеете в виду.
Если что, столбец "Name" в данном конкретном примере имеет тип object, а не string

Python
1
2
3
4
5
6
df.dtypes
 
Name      object
Volume     int64
Value      int64
dtype: object
1
1 / 1 / 0
Регистрация: 02.05.2022
Сообщений: 80
04.07.2022, 16:10  [ТС]
Ой, имел ввиду данные значения ['May21', 'James', 'Adi22', 'Hello', 'Girl90']
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
04.07.2022, 16:19
Лучший ответ Сообщение было отмечено timaKazh как решение

Решение

Можете по аналогии
Python
1
2
from pandas.api.types import is_string_dtype
df.drop([column for column in df.columns if is_string_dtype(df[column])], axis =1)
1
1 / 1 / 0
Регистрация: 02.05.2022
Сообщений: 80
06.07.2022, 05:21  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
lst = [['MSSubClass', 'MSZoning', 'LotArea', 'Street', 'LotShape', 'LandContour', 'Utilities', 'LotConfig', 'LandSlope', 'Neighborhood', 'Condition1', 'Condition2', 'BldgType', 'HouseStyle', 'OverallQual', 'OverallCond', 'YearBuilt', 'YearRemodAdd', 'RoofStyle', 'RoofMatl', 'Exterior1st', 'Exterior2nd', 'MasVnrType', 'MasVnrArea', 'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual', 'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinSF1', 'BsmtFinType2', 'BsmtFinSF2', 'BsmtUnfSF', 'TotalBsmtSF', 'Heating', 'HeatingQC', 'CentralAir', 'Electrical', '1stFlrSF', '2ndFlrSF', 'LowQualFinSF', 'GrLivArea', 'BsmtFullBath', 'BsmtHalfBath', 'FullBath', 'HalfBath', 'BedroomAbvGr', 'KitchenAbvGr', 'KitchenQual', 'TotRmsAbvGrd', 'Functional', 'Fireplaces', 'GarageType', 'GarageYrBlt', 'GarageFinish', 'GarageCars', 'GarageArea', 'GarageQual', 'GarageCond', 'PavedDrive', 'WoodDeckSF', 'OpenPorchSF', 'EnclosedPorch', '3SsnPorch', 'ScreenPorch', 'PoolArea', 'MiscVal', 'MoSold', 'YrSold', 'SaleType', 'SaleCondition', 'SalePrice'], ['60', 'RL', '8450', 'Pave', 'Reg', 'Lvl', 'AllPub', 'Inside', 'Gtl', 'CollgCr', 'Norm', 'Norm', '1Fam', '2Story', '7', '5', '2003', '2003', 'Gable', 'CompShg', 'VinylSd', 'VinylSd', 'BrkFace', '196', 'Gd', 'TA', 'PConc', 'Gd', 'TA', 'No', 'GLQ', '706', 'Unf', '0', '150', '856', 'GasA', 'Ex', 'Y', 'SBrkr', '856', '854', '0', '1710', '1', '0', '2', '1', '3', '1', 'Gd', '8', 'Typ', '0', 'Attchd', '2003', 'RFn', '2', '548', 'TA', 'TA', 'Y', '0', '61', '0', '0', '0', '0', '0', '2', '2008', 'WD', 'Normal', '208500'], ['20', 'RL', '9600', 'Pave', 'Reg', 'Lvl', 'AllPub', 'FR2', 'Gtl', 'Veenker', 'Feedr', 'Norm', '1Fam', '1Story', '6', '8', '1976', '1976', 'Gable', 'CompShg', 'MetalSd', 'MetalSd', 'None', '0', 'TA', 'TA', 'CBlock', 'Gd', 'TA', 'Gd', 'ALQ', '978', 'Unf', '0', '284', '1262', 'GasA', 'Ex', 'Y', 'SBrkr', '1262', '0', '0', '1262', '0', '1', '2', '0', '3', '1', 'TA', '6', 'Typ', '1', 'Attchd', '1976', 'RFn', '2', '460', 'TA', 'TA', 'Y', '298', '0', '0', '0', '0', '0', '0', '5', '2007', 'WD', 'Normal', '181500']]
 
Это list с колонками и мы преобразуем в DataFrame pd_data. У меня не получилось все данные списка вместить, поэтому такой сокращенный вариант.
 
 
from pandas.api.types import is_string_dtype
def split_str_nums(data):
 
    lst_integer = []
    type_of_string = data.drop([column for column in data.columns if is_string_dtype(data.dtypes[column])], axis =1)
    print(type_of_integer)
    
 
str_data=split_str_nums(pd_data)
 
 
Вывод:
Empty DataFrame
Columns: []
Index: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 110, ...]
 
[1338 rows x 0 columns]

У меня выходит почему-то такой ответ?
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
06.07.2022, 06:17
timaKazh, в вашем примере ничего непонятно.
Что вы подаете в split_str_nums? А в коде эта функция ничего не возвращает, а только печатает и опять непонятно что
1
1 / 1 / 0
Регистрация: 02.05.2022
Сообщений: 80
06.07.2022, 06:20  [ТС]
так я подаю pf_data(которую мы преобразовали в DataFrame с list) в data
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
06.07.2022, 06:30
timaKazh,
Покажите, как вы это делаете.
Функция split_str_nums ничего не возвращает.
В самой функции какие-то несвязанные с собой вещи делаете

Добавлено через 2 минуты
В ней 3 строчки. Ни одна к другой никакого отношения не имеет
Летят крокодилы, один зеленый, другой на север. Почем килограмм бузины, в Киеве дядька с кошкой
Примерно вот такое.
1
1 / 1 / 0
Регистрация: 02.05.2022
Сообщений: 80
06.07.2022, 06:35  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
from pandas.api.types import is_string_dtype
 
res = pd_data.drop([column for column in pd_data.columns if is_string_dtype(pd_data.dtypes[column])], axis =1)
print(res)
 
Вывод:
Empty DataFrame
Columns: []
Index: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 92, 93, 94, 95, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 110, ...]
 
[1338 rows x 0 columns]
Я вот делаю без функции, такой же ответ выводит, не могу понять где у меня ошибка, хотя с тем же примером dictionary все получалось
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
06.07.2022, 06:46
В pd_data что???

Python
1
2
print(pd_data.head())
print(pd_data.info(verbose=True))
1
1 / 1 / 0
Регистрация: 02.05.2022
Сообщений: 80
06.07.2022, 06:53  [ТС]
В pd_data Датафрейм данных с list lst.

Python
1
2
print(df.head())
print(pd_data .info(verbose=True)
я вывел данный код, и у меня Dtype все object. В этом ошибка?
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
06.07.2022, 07:17
Цитата Сообщение от timaKazh Посмотреть сообщение
и у меня Dtype все object
Ну что вы хотели?
Попробуйте в коде функции поменять
Python
1
res = pd_data.drop([column for column in pd_data.columns if is_string_dtype(pd_data.dtypes[column])], axis =1)
На
Python
1
res = pd_data.drop([column for column in pd_data.columns if is_string_dtype(pd_data[column])], axis =1)
Добавлено через 1 минуту
Но что лежит в pd_data тоже хочется взглянуть
1
1 / 1 / 0
Регистрация: 02.05.2022
Сообщений: 80
06.07.2022, 07:50  [ТС]
получается в этом вся проблема да? мне с ним получается надо разобраться?
"я вывел данный код, и у меня Dtype все object. В этом ошибка?"
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
06.07.2022, 07:54
Лучший ответ Сообщение было отмечено timaKazh как решение

Решение

timaKazh, да. Весь вопрос в том, как вы формируете pd_data и как мы определяем, что столбец "строковый" - по свойству Dtype либо по содержимому
0
1 / 1 / 0
Регистрация: 02.05.2022
Сообщений: 80
06.07.2022, 08:22  [ТС]
все, спасибо большое, буду разбираться теперь. Спасибо за терпение!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2022, 08:22
Помогаю со студенческими работами здесь

Записать в двоичный файл столбцы массива, у которых первый и последний элементы имеют одинаковые значения
Создать двоичный файл и записать в него двумерный целочисленный массив размером n×m. Записать в двоичный файл F2 те столбцы массива, у...

Удвоить те числа, которые имеют нечетные значения
Даны три действительных числа. Удвоить из них те , которые имеют нечетные значения. Оформить как функцию , изменяющую значения параметров. ...

Вывести индексы элементов массива, которые имеют одинаковые значения
Составить программу, которая формирует массив двухзначных чисел из 10 элементов (задать с клавиатуры), выводит индексы элементов, которые...

Выполнить выборку из БД, с параметрами, которые имеют значения, отличные от нуля
у меня есть несколько dropdownlist на странице. Там могут быть выставлены пустые значения (dropdownlist.selectedvalue = 0) и все остальные....

Определить количество чисел в массиве, которые имеют заданные значения в разрядах 48, 32 и 16
Задание 2: Составить программу для определения количества двоичных чисел X, которые имеют заданные значения 0, 1 и 0 двоичных разрядов с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru