我找了又找,但找不到如何通过(索引,列)测试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/