如何签入pandas DataFrame条目存在(索引,列)

时间:2016-10-08 14:36:12

标签: python pandas

我已搜索并搜索过但我无法通过(索引,列)测试如何测试pandas数据框条目是否存在。

例如:

import pandas
df = pandas.DataFrame()

df.ix['apple', 'banana'] = 0.1
df.ix['apple', 'orange'] = 0.1
df.ix['kiwi', 'banana'] = 0.2
df.ix['kiwi', 'orange'] = 0.7

df
       banana  orange
apple     0.1     0.1
kiwi      0.2     0.7

现在我想测试一个条目是否存在

if (["apple", "banana"] in df)

..应 True

if (["apple", "apple"] in df)

..应该错误

实际上,我测试存在的原因是因为以下内容不起作用

some loop ..
    df[wp] += some_value
    pass

当df [wp]不存在时失败。如果表达式为

,这确实有效
some loop ..
    df[wp] += some_value
    pass

因为pandas确实想通过赋值来扩展数组。

1 个答案:

答案 0 :(得分:1)

您可以检查索引和列中是否存在:

('kiwi' in df.index) and ('apple' in df.columns)

或者您可以使用try / except块:

try:
    df.ix['kiwi', 'apple'] += some_value
except KeyError:
    df.ix['kiwi', 'apple'] = some_value

请注意,DataFrames的形状并不是动态的。这可能会严重降低您的运营速度。所以用字典做这些事情可能会更好,最后把它们变成DataFrames。