Answers:
这应该可以解决问题
'g' in df.index
n
,那么1..n
可以检查任何长度的元组
'g' in df.columns
如果您的数据框是用列标题而不是索引定义的,则可能需要使用,例如:df = pandas.DataFrame({'test':[1,2,3,4]}, columns=['a','b','c','d'])
仅供参考,这是我一直在寻找的东西,您可以通过附加“ .values”方法来测试值或索引中是否存在,例如
g in df.<your selected field>.values
g in df.index.values
我发现添加“ .values”以获取简单的列表或ndarray会使存在或“输入”检查与其他python工具一起运行更为流畅。只是以为我会把那个扔给别人。
in g in df.index
产生真假的分层案例in g in df.index.values
。有趣。
多索引的工作方式与单索引略有不同。这是多索引数据框的一些方法。
df = pd.DataFrame({'col1': ['a', 'b','c', 'd'], 'col2': ['X','X','Y', 'Y'], 'col3': [1, 2, 3, 4]}, columns=['col1', 'col2', 'col3'])
df = df.set_index(['col1', 'col2'])
in df.index
仅在检查单个索引值时才适用于第一级。
'a' in df.index # True
'X' in df.index # False
检查df.index.levels
其他级别。
'a' in df.index.levels[0] # True
'X' in df.index.levels[1] # True
签入df.index
索引组合元组。
('a', 'X') in df.index # True
('a', 'Y') in df.index # False
与DataFrame:df_data
>>> df_data
id name value
0 a ampha 1
1 b beta 2
2 c ce 3
我试过了:
>>> getattr(df_data, 'value').isin([1]).any()
True
>>> getattr(df_data, 'value').isin(['1']).any()
True
但:
>>> 1 in getattr(df_data, 'value')
True
>>> '1' in getattr(df_data, 'value')
False
很有趣:D
isin
不会检查dtype。df['value'].isin([True]).any()
尝试此操作,它也会为您提供True,因为它与匹配1
。True -> 1
。