回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>有没有Pandas的解决方案-例如:使用numba,或者Cython到<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.transform.html#pandas.DataFrame.transform" rel="nofollow noreferrer">^{<cd1>}</a>/<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html#pandas.DataFrame.apply" rel="nofollow noreferrer">^{<cd2>}</a>带索引?在</p>
<p>我知道我可以用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iterrows.html" rel="nofollow noreferrer">^{<cd3>}</a>、<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.itertuples.html" rel="nofollow noreferrer">^{<cd4>}</a>、<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iteritems.html#pandas.DataFrame.iteritems" rel="nofollow noreferrer">^{<cd5>}</a>或{a6}。但是我想做的应该是向量化的琐碎……我已经为我的实际用例(<a href="https://ideone.com/XxNsG9" rel="nofollow noreferrer">runnable code</a>)构建了一个简单的代理:
在</p>
<pre><code>df = pd.DataFrame(
np.random.randn(8, 4),
index=[np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])])
namednumber2numbername = {
'one': ('zero', 'one', 'two', 'three', 'four',
'five', 'six', 'seven', 'eight', 'nine'),
'two': ('i', 'ii', 'iii', 'iv', 'v',
'vi', 'vii', 'viii', 'ix', 'x')
}
def namednumber2numbername_applicator(series):
def to_s(value):
if pd.isnull(value) or isinstance(value, string_types): return value
value = np.ushort(value)
if value > 10: return value
# TODO: Figure out idx of `series.name` at this `value`… instead of `'one'`
return namednumber2numbername['one'][value]
return series.apply(to_s)
df.transform(namednumber2numbername_applicator)
</code></pre>
<h3>实际输出</h3>
^{pr2}$
<h3>我想要的输出</h3>
^{3}$
<hr/>
<p>可能相关:<a href="https://stackoverflow.com/q/17921010">How to query MultiIndex index columns values in pandas</a></p>
<p>实际上,我在寻找与<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Parameters" rel="nofollow noreferrer">JavaScript's ^{<cd7>}</a>(它传递<code>idx</code>)相同的行为。在</p>