有没有Pandas的解决方案-例如:使用numba,或者Cython到^{
我知道我可以用^{
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)
可能相关:How to query MultiIndex index columns values in pandas
实际上,我在寻找与JavaScript's ^{idx
)相同的行为。在
下面是另一种使用^{} 和^{} 的方法:
^{pr2}$
^{3}$
步骤如下:
如果有任何步骤我没有检查,或者您想合并,因为我觉得这是避免行计算的一种方法,请告诉我。在
默认情况下,^{} 将函数应用于每个列。相反,您可以将其应用于指定axis参数}的每一行。然后可以访问行索引,并将其第二个名称字段传递给函数:
1
或{结果:
^{pr2}$为了得到这些结果,我编写了一个非常快速的转换版本。你可以做np.ushort公司在发电机内部,它仍然很快,但在外面快得多:
原来的时间是这样的:
^{pr2}$我找到了一条线索:
^{3}$确定没有.items()的版本:
还有一条线!!!!不,按你的要求做!我们按级别0和1分组,然后执行计算以确定值:
为了得到其他值,我这样做了:
这里有一个没有。物品:
输出
^{8}$我也没有分组:
相关问题 更多 >
编程相关推荐