我想知道是否有办法使用值列表索引DataFrame
这样当一个键不存在时,抛出KeyError
而不是返回
NaN
。
import pandas as pd
df = pd.DataFrame([[2,6],[2,7]], index=['A', 'B'], columns=['type1', 'type2'])
对于索引单个值,这可以按需要使用
df.loc["A", ["type3"]]
...
KeyError: 'the label [type3] is not in the [index]'
但是使用多个键会返回NaN
df.loc["A", ["type2", "type3"]]
type2 6.0
type3 NaN
Name: A, dtype: float64
有一些明显的黑客行为,例如循环列表,但我是 想知道是否有更清洁/更有效的解决方案?
答案 0 :(得分:1)
没有.loc缺少的列名确实会导致错误。因此,只需链接:
df[["type2", "type3"]].loc["A",:]
我一直很喜欢'NaN'返回的功能。每当我想使测试数据与火车数据兼容时,都派上用场了。但是,现在在pandas 1.0中,即使.loc缺少列名也会导致异常