如何在熊猫数据框中拆分元组列?

Donbeo:

我有一个熊猫数据框(这只是一小块)

>>> d1
   y norm test  y norm train  len(y_train)  len(y_test)  \
0    64.904368    116.151232          1645          549   
1    70.852681    112.639876          1645          549   

                                    SVR RBF  \
0   (35.652207342877873, 22.95533537448393)   
1  (39.563683797747622, 27.382483096332511)   

                                        LCV  \
0  (19.365430594452338, 13.880062435173587)   
1  (19.099614489458364, 14.018867136617146)   

                                   RIDGE CV  \
0  (4.2907610988480362, 12.416745648065584)   
1    (4.18864306788194, 12.980833914392477)   

                                         RF  \
0   (9.9484841581029428, 16.46902345373697)   
1  (10.139848213735391, 16.282141345406522)   

                                           GB  \
0  (0.012816232716538605, 15.950164822266007)   
1  (0.012814519804493328, 15.305745202851712)   

                                             ET DATA  
0  (0.00034337162272515505, 16.284800366214057)  j2m  
1  (0.00024811554516431878, 15.556506191784194)  j2m  
>>> 

我想拆分所有包含元组的列。比如我想替换列LCV与列LCV-aLCV-b

我怎样才能做到这一点?

乔里斯:

您可以通过pd.DataFrame(col.tolist())在该列上执行此操作

In [2]: df = pd.DataFrame({'a':[1,2], 'b':[(1,2), (3,4)]})                                                                                                                      

In [3]: df                                                                                                                                                                      
Out[3]: 
   a       b
0  1  (1, 2)
1  2  (3, 4)

In [4]: df['b'].tolist()                                                                                                                                                        
Out[4]: [(1, 2), (3, 4)]

In [5]: pd.DataFrame(df['b'].tolist(), index=df.index)                                                                                                                                          
Out[5]: 
   0  1
0  1  2
1  3  4

In [6]: df[['b1', 'b2']] = pd.DataFrame(df['b'].tolist(), index=df.index)                                                                                                                       

In [7]: df                                                                                                                                                                      
Out[7]: 
   a       b  b1  b2
0  1  (1, 2)   1   2
1  2  (3, 4)   3   4

注意:在早期版本中,建议使用此答案df['b'].apply(pd.Series)代替pd.DataFrame(df['b'].tolist(), index=df.index)这也很好(因为它使每个元组组成一个Series,然后将其视为一个数据帧的一行),但是比tolist版本更慢/使用更多的内存,如此处其他答案所述(感谢@denfromufa) 。
我更新了此答案,以确保最明显的答案具有最佳的解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在熊猫数据框中创建偏斜的列?

熊猫:如何在列中拆分元组数据并创建多列

如何在熊猫中按数据框分组并保留列

如何在熊猫数据框中解压缩各种长度的元组列表?

如何使用matplotlib提取熊猫数据框中的元组值?

将数据框的列中的元组列表拆分为数据框的列

如何对熊猫数据框的列中的值进行拆分和分类

如何在数据框的列中对元组进行排序

如何在熊猫数据框的列中替换口音

如何使用周期值列拆分熊猫数据框

如何将数据框列拆分为熊猫中的另一列?

如何从熊猫的列中拆分数据?

熊猫:如何根据表示两个列中值的元组列表从数据框中删除行?

如何在熊猫中拆分几列数据?

在熊猫数据框列中的元组中拆分字符串

如何将仅包含数字的数据框中的列拆分为熊猫中的多列

熊猫数据框列拆分

如何在熊猫数据框中创建新列

如何基于列中的值差异拆分熊猫数据框

如何基于列前缀拆分熊猫数据框

如何在熊猫数据框的列中搜索特定文本

如何在熊猫数据框中的多行中拆分单元格的值?

如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

如何在熊猫数据框中添加两列?

如何在函数中引用熊猫数据框的索引列

如何在数据框中拆分此类列?

如何在熊猫数据框中拆分然后组合

如何在熊猫数据框中组合两列文本

如何在熊猫数据框中创建 json 列