Python кодирование для науки о данных, панды, проверка типов данных - PullRequest
0 голосов
/ 07 октября 2018

Можно ли как-нибудь перебрать каждую строку столбца, отображая тип данных каждого элемента (в файле csv)?На самом деле, я пытаюсь перебрать каждый элемент столбца и проверяю, соответствует ли он требуемому типу данных.

Пример кода будет оценен.

Заранее спасибо

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

вы можете получить типы путем итерации через iterrows

Приведенный ниже код даст вам типы, например str, int и т. Д.

[type(r['column_name']) for i,r in df.iterrows()]

Опубликовать это выможет выполнить проверку.

пример: для фильтрации строк из строки: я бы использовал понимание списка как:

[r['column_name'] for i,r in df.iterrows() if type(r['column_name'])==str]

, вы также можете использовать:

for i,r in df.iterrows():
    if type(r['column_name'])==str:
       print(r['column_name'])

РЕДАКТИРОВАТЬ:

Следующий фрагмент кода дает вам все данные, которые не являются целыми:

df[~df.applymap(lambda x: isinstance(x, (int)))].dropna(how="all")

РЕДАКТИРОВАТЬ:

На основе ваших комментариев, вы можете попробовать это:

for i,r in df.iterrows():
    if type(r['id'])!=int:
       print(i,r['id'])

или, если вы имели в виду int как числовой, приведенный ниже код даст вам строки, в которых есть нечисловые данные

df[~df.applymap(np.isreal).all(1)]

надеюсь, это поможет.

0 голосов
/ 07 октября 2018

Вы можете сделать это несколькими способами, один из них - загрузить CSV в панд,

df = pd.read_csv('example.csv')
for row in df.rows:
   if (row['column_name'] is in right format):
        #do something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...