Как преобразовать часть строки в ячейке DataFrame в число для фильтрации? - PullRequest
1 голос
/ 13 апреля 2019

Вот пример кадра данных:

df = pd.DataFrame([['A0000x', 'a'],
                    ['B0010x', 'b'],
                    ['C0020x', 'c'],
                    ['D0040x', 'd']])

df.columns = ['num', 'let']

Я хотел бы извлечь только те строки, где целое число, состоящее из 3-го и 4-го символа в столбце num, делится, например, на 2.Так что мне нужно проверить, если df['num'][2:4] % 2

Я получил это далеко, но не могу понять, как преобразовать его в целое число:

df.index[df['num'].str[2:4] == '01']

Ответы [ 2 ]

2 голосов
/ 13 апреля 2019

Используйте astype для преобразования строкового столбца в int, затем логический индекс.

df['num'].str[2:4].astype(int)

0    0
1    1
2    2
3    4
Name: num, dtype: int64

df[df['num'].str[2:4].astype(int) % 2 == 0]

      num let
0  A0000x   a
2  C0020x   c
3  D0040x   d
0 голосов
/ 13 апреля 2019
import pandas as pd

df = pd.DataFrame([['A0000x', 'a'],
                    ['B0010x', 'b'],
                    ['C0020x', 'c'],
                    ['D0040x', 'd']])

df.columns = ['num', 'let']

for index, row in df.iterrows():
    if (int(row["num"][2:4]) % 2 ==0):
        print(row["num"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...