我试图添加一个条件列,它查看col1,如果等于'Hello'则返回True,否则返回False。问题是它似乎根据col1的字母顺序将其放置在
df = pd.DataFrame({'col1': ['A','B','Hello','C'],'col2':['foo','bar','baz','foz'], 'col3 ':['3','1','3','4']})
df.set_index(['col1', 'col2'],inplace=True)
df['col4'] = df.index.levels[0].str.contains('Hello')
它回来了
col3 col4
col1 col2
A foo 3 False
B bar 1 False
Hello baz 3 False
C foz 4 True
但我要它回来
col3 col4
col1 col2
A foo 3 False
B bar 1 False
Hello baz 3 True
C foz 4 False
因为
index.levels[0]
已经排序,所以使用reset_index
:现在:
是:
而不是
使用
其他的都一样。你知道吗
使用
eval
:对于部分字符串搜索,请将
str.contains
与engine='python'
一起使用。你知道吗另一个选项是查询
MultiIndex.get_level_values
:如果这是部分字符串搜索问题,请在此处使用
str.contains
:最后,如果要执行相等比较(而不是部分字符串匹配),可以使用
loc
和pd.IndexSlice
进行赋值:相关问题 更多 >
编程相关推荐