作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个庞大的数据框。数据框有 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)
这也给我一个错误。我应该怎么做才能正确处理?
最佳答案
复制您的数据后,
>>> df
patient.drug
0 [{'drugcharacterization': '1', 'medicinalproduct': 'PANDOL'}]
1 [{'drugcharacterization': '2', 'medicinalproduct': 'NIFEDIPINE'}]
2 [{'drugcharacterization': '3', 'medicinalproduct': 'SIMVASTATIN'}]
3 [{'drugcharacterization': '3', 'medicinalproduct': 'SIMVASTATIN'}]
4 [{'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], dtype='float64')] are in the [columns]"
>>> df[df['patient.drug'].astype('str').str.contains('NIFEDIPINE')]
patient.drug
1 [{'drugcharacterization': '2', 'medicinalproduct': 'NIFEDIPINE'}]
4 [{'drugcharacterization': '4', 'medicinalproduct': 'NIFEDIPINE'}]
注意:
这是由于 indexer
检查 pandas indexer.py
部分而引发的问题,如下所示:
--> pandas/core/indexing.py
# Count missing values:
missing_mask = indexer < 0
missing = (missing_mask).sum()
if missing:
if missing == len(indexer):
axis_name = self.obj._get_axis_name(axis)
raise KeyError(f"None of [{key}] are in the [{axis_name}]")
# We (temporarily) allow for some missing keys with .loc, except in
# some cases (e.g. setting) in which "raise_missing" will be False
关于python - 过滤掉包含特定字符串的数据帧的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68126025/
我正在编写一个快速的 preg_replace 来从 CSS 中删除注释。 CSS 注释通常有这样的语法: /* Development Classes*/ /* Un-comment me for
使用 MySQL,我有三个表: 项目: ID name 1 "birthday party" 2 "soccer match" 3 "wine tasting evening" 4
我是一名优秀的程序员,十分优秀!