У меня есть фрейм данных, который состоит из нескольких столбцов. Я хочу выбрать строки на основе условий в нескольких столбцах. Предполагая, что у меня есть четыре столбца в кадре данных:
import pandas as pd
di={"A":[1,2,3,4,5],
"B":['Tokyo','Madrid','Professor','helsinki','Tokyo Oliveira'],
"C":['250','200//250','250//250//200','12','200//300'],
"D":['Left','Right','Left','Right','Right']}
data=pd.DataFrame(di)
Я хочу выбрать Токио в столбце B, 200 в столбце C, слева в столбце D. При этом будет выбрана только первая строка , Я должен создать функцию для обработки столбца C. Поскольку мне нужно проверить первое значение, если строка содержит список с //
, чтобы справиться с этим, я предполагаю, что это можно сделать с помощью следующего:
def check_200(thecolumn):
thelist=[]
for i in thecolumn:
f=i
if "//" in f:
#split based on //
z=f.split("//")
f=z[0]
f=float(f)
if f > 200.00:
thelist.append(True)
else:
thelist.append(False)
return thelist
Затем я создать несколько условий:
selecteddata=data[(data.B.str.contains("Tokyo")) &
(data.D.str.contains("Left"))&(check_200(data.C))]
Это лучший способ сделать это, или есть более простая функция pandas, которая может удовлетворить такие требования?