我有一个包含15个独立ICD列(ICD1
到ICD15
)的数据帧,并且希望创建一个变量“encep”
(0/1),当数字“323”出现在15个ICD列中的任何一个时。
dataframe本身包含30多个变量,如下所示
PT_FIN DATE Address... ICD1 ICD2... ICD15
1 July 123 lane 523 432 .
2 August ABC road 523 43.6 12.8
不完全确定我是否在正确的轨道上,但我编写了以下代码试图完成我的任务,但得到了一个错误:
ICDA = ["ICD1","ICD2","ICD3","ICD4","ICD5","ICD6","ICD7","ICD8","ICD9","ICD10","ICD11","ICD12","ICD13","ICD14","ICD15"]
ICD1.loc[:,"Encep"]=np.where(ICD1["ICDA"].str.contains("323", case=False),1,0)
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
2889 try:
-> 2890 return self._engine.get_loc(key)
2891 except KeyError:
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: 'ICDA'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
<ipython-input-34-564afcae6cd2> in <module>
1 ICDA= ["ICD1","ICD2","ICD3","ICD4","ICD5","ICD6","ICD7","ICD8","ICD9","ICD10","ICD11","ICD12","ICD13","ICD14","ICD15"]
----> 2 ICD1.loc[:,"LumbPCode"]=np.where(ICD1["ICDA"].str.contains("323", case=False),1,0)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
2973 if self.columns.nlevels > 1:
2974 return self._getitem_multilevel(key)
-> 2975 indexer = self.columns.get_loc(key)
2976 if is_integer(indexer):
2977 indexer = [indexer]
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
2890 return self._engine.get_loc(key)
2891 except KeyError:
-> 2892 return self._engine.get_loc(self._maybe_cast_indexer(key))
2893 indexer = self.get_indexer([key], method=method, tolerance=tolerance)
2894 if indexer.ndim > 1 or indexer.size > 1:
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: 'ICDA'
在Pandas中多列上查找字符串
Keyerror来自这样一个事实,即在您的数据帧中没有称为ICDA
的列(即没有'key')。
对该列调用.str.contains
(即使它存在)也没有意义,因为它看起来是一列列名。
可能的解决办法
ICDA = ["ICD1","ICD2","ICD3","ICD4","ICD5","ICD6","ICD7","ICD8","ICD9","ICD10","ICD11","ICD12","ICD13","ICD14","ICD15"]
# if those cols aren't strings, make them (probably best to leave as float and compare, tho)
for col in ICDA:
ICD1[col] = str(ICD1[col])
ICD1['Encep'] = (ICD1[ICDA].values == '323').any(1).astype(int)
我想知道我是否能得到一些帮助,让我的java看起来更好。目前,我正在做一些家庭作业,当我纠正一个if语句的多个条件时,它看起来非常混乱,就像下面的一个。我试着看看str.charat(p)是否等于任何元音,但是这看起来很糟糕,一个接一个地写出来。有更好的办法吗?
问题内容: 我尝试了使用“注释”对Hibernate进行“多对多映射”以及vaannila中给出的示例。 http://www.vaannila.com/hibernate/hibernate-example/hibernate-mapping-many- to-many-using-annotations-1.html 这个东西工作正常。但是,如果我稍后尝试向现有的学生添加另一门课程, 它在表中
我想显示一个名为listaBaresFiltrada的列表,按多个值排序。 Evento模型: 现在,我可以创建第一个排序条件,如下所示: 但我不知道如何包括其他两个排序条件。
问题内容: 我正在寻找一种“更好”的方式来执行查询,在该查询中,我想向单个玩家显示他之前玩过的游戏以及与每个此类对手相关的获胜记录。 以下是涉及的表格,精简如下: 因此,约翰对玛丽的战绩是2胜1负。vs鲍勃1胜0负; 和爱丽丝的3胜2负。 我正在使用Postgres 9.4。我脑海中有些东西告诉我要考虑一下,但是我很难理解这样的“形状”。 以下是我当前正在使用的查询,但是有些“感觉不到”。请帮助我
我有一个数据帧,我想删除a列等于蓝色,B列等于绿色的所有行。 我认为下面的应该工作,但事实并非如此。 有人看到问题了吗
我有如下格式的表结构: 我想把属性ID作为参数传递,然后得到一个为它分配了所有属性的projectId。 如果我通过了20、30个属性ID,我应该只得到570个项目ID,而不是87,因为30没有分配给87。 上面的查询给我,下面的结果是不正确的。