这是一个示例数据框:
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']
答案 0 :(得分:2)
使用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
答案 1 :(得分:0)
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"])