2016-10-08 195 views
1

我已經搜索和搜索,但我無法找到如何測試(索引,列)是否存在熊貓數據框條目。如何檢查熊貓DataFrame條目是否存在(索引,列)

例如:

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) 

..應該是

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

..應該是


實際上我測試存在的理由是因爲以下不工作

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

當DF [WP]不存在失敗。如果表達式爲

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

這會工作,因爲pandas確實有通過賦值來擴展數組的想法。

回答

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'形狀並不意味着是動態。這可能會嚴重降低您的操作速度。所以用字典做這些事情可能會更好,最後將它們變成DataFrame。