【发布时间】:2016-12-30 21:11:18
【问题描述】:
考虑 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 而不是 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
我希望有一种更简单的方法可以忽略。
【问题讨论】:
标签: python pandas multi-index