所以我知道有很多关于如何将single列元组拆分成几列的帖子.但我还没有看到任何关于如何同时拆分several列元组的内容.我try 过嵌套应用程序:

spl.apply(lambda col: spl[col].apply(pd.Series)) 

但它不起作用.

spl = pd.DataFrame({('a', 'b') : [(i, i+1) for i in range(3)], 
                    ('a', 'c'): [(2*i, 2*i+1) for i in range(3)], 
                    ('e', 'b'): [(2*i, 2*i+1) for i in range(3)]})
>>> spl
                a        e
         b      c        b
0   (0, 1)  (0, 1)  (0, 1)
1   (1, 2)  (2, 3)  (2, 3)
2   (2, 3)  (4, 5)  (4, 5)

目标是:

                a          e
    b0  b1  c0  c1   b0   b1
0   0   1   0    1    0    1
1   1   2   2    3    2    3
2   2   3   4    5    4    5

推荐答案

这里有一个解决方案:

new_df = pd.concat([pd.DataFrame(spl[c].tolist()).add_prefix(c[-1]) for c in spl], axis=1)
new_df.columns = pd.MultiIndex.from_arrays([np.repeat(spl.columns.get_level_values(0), 2), new_df.columns])

输出:

>>> new_df
   a           e   
  b0 b1 c0 c1 b0 b1
0  0  1  0  1  0  1
1  1  2  2  3  2  3
2  2  3  4  5  4  5

一艘大邮轮:)

new_df = pd.concat([pd.DataFrame(spl[c].tolist()).add_prefix(c[-1]) for c in spl], axis=1).pipe(lambda x: x.set_axis(pd.MultiIndex.from_arrays([np.repeat(spl.columns.get_level_values(0), 2), x.columns]), axis=1))

Python相关问答推荐

从流程获取定期更新

两极按组颠倒顺序

日程优化问题不知道更好的方式来呈现解决方案- Python / Gekko

是否有方法将现有的X-Y图转换为X-Y-Y1图(以重新填充)?

如何编写一个正规表达式来查找序列中具有2个或更多相同辅音的所有单词

opencv Python稳定的图标识别

拆分pandas列并创建包含这些拆分值计数的新列

如何用symy更新分段函数

在Python和matlab中显示不同 colored颜色 的图像

替换字符串中的多个重叠子字符串

当多个值具有相同模式时返回空

Pystata:从Python并行运行stata实例

try 在树叶 map 上应用覆盖磁贴

根据二元组列表在pandas中创建新列

计算分布的标准差

计算天数

Plotly Dash Creating Interactive Graph下拉列表

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

pandas:对多级列框架的列进行排序/重新排序

基于Scipy插值法的三次样条系数