如何将数据帧单元格中的部分字符串转换为数字进行过滤?

2024-09-30 00:28:26 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个示例数据帧:

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

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

例如,我只想提取由num列中的第3个和第4个字符组成的整数可被2整除的行。 所以我需要检查df['num'][2:4] % 2

我到了这一步,但不知道如何将其转换为整数:

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


Tags: columns数据示例dataframedfindex整数num
2条回答
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"])

使用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

相关问题 更多 >

    热门问题