繁体   English   中英

如何通过(索引,列)签入 Pandas DataFrame 条目

[英]how to check in a pandas DataFrame entry exists by (index, column)

我已经搜索并搜索过,但我找不到如何通过(索引,列)测试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)

.. 应该是真的

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

..应该是假的


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

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

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

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

因为 pandas 确实有通过赋值扩展数组的想法。

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

('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

请注意,DataFrame 的形状并不意味着是动态的。 这可能会严重减慢您的操作速度。 所以最好用字典来做这些事情,最后把它们变成 DataFrames。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM