我有一个嵌套循环。在外循环中,我遍历的键比内循环中的dataframe[key]多。导致索引错误(在数据帧[key]中找不到key)。 我需要一种方法来检查钥匙是否匹配。你知道吗
f.e.仅关键列:
dfKeys dataframe
------- --------
key key
1 1
1 3
3 5
3 9
3
4
4
5
5
5
5
8
8
9
9
9
grouped=dfKeys.groupby('key')
for key, group in grouped:
if ((group.someCol=='someVal').any() or ~(group.someCol.isin(someArray).any())):
if(key in dataframe['key']): #######this did not solve it, always false (but there have to be some matches)
foundIndex=dataframe[dataframe['key']==key].index.values.astype(int)[0] #INDEXERROR after some loops if there is no 'if' above
dataframe.loc[foundIndex,'myCol']='myVal'
dataframe['key']
的类型是熊猫系列。你知道吗
不是很优雅,但我可以尝试一下
如果是循环使用的列表,则可以检查索引是否在列表长度内:
如果是字典,您可以检查密钥是否存在:
如果要从dict中获取一个键(如果存在),如果不存在则返回一个默认值,那么可以使用
dict.get()
:编辑:
根据文件熊猫系列,可以使用
Series.get()
方法获取给定键的项。与dict.get()
一样,如果找不到键,可以指定要返回的默认值:那个熊猫系列文件:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.html
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.get.html#pandas.Series.get
相关问题 更多 >
编程相关推荐