【发布时间】:2014-12-16 21:23:00
【问题描述】:
我有一个pandas Series,它有许多由字符串索引的值。除了一个,我想把它们都抓起来。
my_series.ix['intercept'] #<--- this has the value I don't want
有没有办法获取my_series 中的所有内容,除了my_series.ix['intercept'] 返回的内容?
【问题讨论】:
我有一个pandas Series,它有许多由字符串索引的值。除了一个,我想把它们都抓起来。
my_series.ix['intercept'] #<--- this has the value I don't want
有没有办法获取my_series 中的所有内容,除了my_series.ix['intercept'] 返回的内容?
【问题讨论】:
您可以构造一个mask -- 一个布尔数组,它是 True,其中 Series 索引等于特定值:
mask = my_series.index.isin(['intercept'])
然后您可以以典型方式选择剩余的行:
my_series.loc[~mask]
请注意,如果该值多次出现在索引中,则所有具有相同索引的行都将被删除:
my_series = pd.Series([10,20,30,40], index=['foo','intercept','baz','intercept'])
# foo 10
# intercept 20
# baz 30
# intercept 40
# dtype: int64
mask = my_series.index.isin(['intercept'])
print(my_series.loc[~mask])
产量
foo 10
baz 30
dtype: int64
【讨论】:
isin 只是检查成员资格(相等性)而不做任何特定于字符串的操作,例如检查是否一个字符串包含在另一个字符串中。