python - 如何通过(索引,列)检查 pandas DataFrame 条目是否存在

标签 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)

..应该是正确

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 block :

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

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

关于python - 如何通过(索引,列)检查 pandas DataFrame 条目是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39933630/

相关文章:

python - 如何使 plotly 图例跨越两列

python - 为什么下面情况下的切片运算符在 python 中不起作用?

python - 无法在 pandas python 中绘制我的数据

python - 如何使用 Plotly 绘制循环的局部变量

python-3.x - 来自 Flask 中 FileStorage 的 Pandas read_csv

pandas - 有没有办法修复或绕过数据帧中特定列中奇怪的时间格式?

python - 复制 Pandas DF N 次

python - Pandas Python 中的 Dataframe Comprehension 以创建新的 Dataframe

python - 使用 CherryPy 的 HTTPS 到 HTTP

python - 在 Python/Pandas 中对一列执行值计数,但在多列中返回值