考虑MultiIndex idx
idx = pd.MultiIndex.from_product([range(2013, 2016), range(1, 5)])
当我做
idx.to_series().str.join(' ')
我懂了
2013 1 NaN
2 NaN
3 NaN
4 NaN
2014 1 NaN
2 NaN
3 NaN
4 NaN
2015 1 NaN
2 NaN
3 NaN
4 NaN
dtype: float64
发生这种情况是因为不同级别的dtype是int
and not str
。join
期待一个str
。我如何将整个转换idx
为str
?
我已经搞定了
join = lambda x, delim=' ': delim.join([str(y) for y in x])
idx.to_series().apply(join, delim=' ')
2013 1 2013 1
2 2013 2
3 2013 3
4 2013 4
2014 1 2014 1
2 2014 2
3 2014 3
4 2014 4
2015 1 2015 1
2 2015 2
3 2015 3
4 2015 4
dtype: object
我希望有一种更简单的方法可以忽略。
我不确定这是最优雅的方法,但是应该可以:
idx.get_level_values(0).astype(str).values + ' ' + idx.get_level_values(1).astype(str).values
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句