我有一个庞大的数据框。数据框中有一个名为patient.drug的列。该列包含字典列表作为其元素。
我想要过滤掉所有在patient.drug列中包含'NIFEDIPINE'一词的行。
数据框非常庞大。这是一个样本。
到目前为止,我已经尝试过。
但是它给我一个错误。
我还尝试过使用
这也导致了一个错误。我应该怎么做才能弄对呢?
数据框非常庞大。这是一个样本。
patient.drug
0 [{'drugcharacterization': '1', 'medicinalproduct': 'PANDOL'}]
1 [{'drugcharacterization': '2', 'medicinalproduct': 'NIFEDIPINE'}]
2 [{'drugcharacterization': '3', 'medicinalproduct': 'SIMVASTATIN'}]
3 [{'drugcharacterization': '4', 'medicinalproduct': 'NIFEDIPINE'}]
到目前为止,我已经尝试过。
df[df['patient.drug'].str.contains('NIFEDIPINE')]
但是它给我一个错误。
raise KeyError(f"None of [{key}] are in the [{axis_name}]")
KeyError: "None of [Float64Index([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n ...\n nan, nan, nan, nan, nan, nan, nan, nan, nan, nan],\n dtype='float64', length=12000)] are in the [columns]"
我还尝试过使用
in
运算符和迭代行。lst=[]
for i in range(len(df)):
if 'NIFEDIPINE' in df.loc[i, "patirnt.drug"]:
lst.append(i)
print(lst)
这也导致了一个错误。我应该怎么做才能弄对呢?
if i in df.loc:
- Arkodeep Raypatient.drug
列中有很多NaN
。请尝试使用df[df["patient.drug"].str.contains("NIFEDIPINE", na=False)]
,它会将NaN
替换为False
,以便在返回值中使用作为掩码。希望这样能够安全地使用。 - Mustafa Aydın