我相信有一个明显的方法来做到这一点,但不能想到任何圆滑的现在。
基本上,而不是引发异常,我想获得True或False,看看熊猫df索引中是否存在一个值。
import pandas as pd
df = pd.DataFrame({'test':[1,2,3,4]}, index=['a','b','c','d'])
df.loc['g'] # (should give False)
我现在工作的是以下内容
sum(df.index == 'g')
我相信有一个明显的方法来做到这一点,但不能想到任何圆滑的现在。
基本上,而不是引发异常,我想获得True或False,看看熊猫df索引中是否存在一个值。
import pandas as pd
df = pd.DataFrame({'test':[1,2,3,4]}, index=['a','b','c','d'])
df.loc['g'] # (should give False)
我现在工作的是以下内容
sum(df.index == 'g')
当前回答
df = pandas.DataFrame({'g':[1]}, index=['isStop'])
#df.loc['g']
if 'g' in df.index:
print("find g")
if 'isStop' in df.index:
print("find a")
其他回答
with 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
but:
>>> 1 in getattr(df_data, 'value')
True
>>> '1' in getattr(df_data, 'value')
False
很有趣:D
df = pandas.DataFrame({'g':[1]}, index=['isStop'])
#df.loc['g']
if 'g' in df.index:
print("find g")
if 'isStop' in df.index:
print("find a")
我喜欢用:
if 'value' in df.index.get_level_values(0):
print(True)
Get_level_values方法很好,因为它允许您获得索引中的值,无论您的索引是简单的还是复合的。
如果在数据帧中只有一个索引[或者想在多个索引级别中检查第一个索引],请使用0(0)。使用1作为第二个索引,依此类推……
下面的代码不打印布尔值,但允许数据帧通过索引进行子集设置…我知道这可能不是解决问题的最有效的方法,但我(1)喜欢这个读取的方式和(2)你可以很容易地子集df1索引存在于df2:
df3 = df1[df1.index.isin(df2.index)]
或者df1索引在df2中不存在…
df3 = df1[~df1.index.isin(df2.index)]
这应该能奏效
'g' in df.index