有一个这样的系列:
ds = Series({'wikipedia':10,'wikimedia':22,'wikitravel':33,'google':40})
google 40
wikimedia 22
wikipedia 10
wikitravel 33
dtype: int64
Run Code Online (Sandbox Code Playgroud)
我想选择'wiki'是索引标签一部分的行(部分字符串标签).
我试过的那一刻
ds[ds.index.map(lambda x: 'wiki' in x)]
wikimedia 22
wikipedia 10
wikitravel 33
Name: site, dtype: int64
Run Code Online (Sandbox Code Playgroud)
并且它完成了这项工作,但不知何故,索引像'列'一样哭泣...
有没有更好的方法呢?
And*_*den 11
一种有点厚颜无耻的方式可能是使用loc:
In [11]: ds.loc['wiki': 'wikj']
Out[11]:
wikimedia 22
wikipedia 10
wikitravel 33
dtype: int64
Run Code Online (Sandbox Code Playgroud)
这基本上相当于ds[ds.index.map(lambda s: s.startswith('wiki'))].
要做,包含,正如@DSM建议的那样,写入可能更好:
ds[['wiki' in s for s in ds.index]]
Run Code Online (Sandbox Code Playgroud)
小智 6
使用的另一种解决方案filter,请参见此处:
>>> ds.filter(like='wiki', axis=0)
wikimedia 22
wikipedia 10
wikitravel 33
dtype: int64
Run Code Online (Sandbox Code Playgroud)