pandas 将(,)上的DataFrame列划分为两个新列

xytpbqjk  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(145)

我有一个名为data_的PandasDataFrame与下面的结构相结合:

index   corr_year   corr_5d
0   (DAL, AAL)  0.873762    0.778594
1   (WEC, ED)   0.851578    0.850549
2   (CMS, LNT)  0.850028    0.776143
3   (SWKS, QRVO)    0.850799    0.830603
4   (ALK, DAL)  0.874162    0.744590

现在,我尝试将名为index的列分成(,)上的两列。所需的输出应如下所示:

index1  index2   corr_year  corr_5d
0   DAL    AAL   0.873762   0.778594
1   WEC    ED    0.851578   0.850549
2   CMS    LNT   0.850028   0.776143
3   SWKS   QRVO  0.850799   0.830603
4   ALK    DAL   0.874162   0.744590

我尝试过使用pd.explode()和以下代码

data_results_test = data_results_combined.explode('index')
data_results_test

这将导致以下输出:

index   corr_year   corr_5d
0   DAL 0.873762    0.778594
0   AAL 0.873762    0.778594
1   WEC 0.851578    0.850549
1   ED  0.851578    0.850549

我怎样才能用新添加的列而不是行来实现拆分。pd.explode似乎没有任何选项来选择是添加新行还是新列

tquggr8v

tquggr8v1#

简单的apply怎么样?(假设'index'列是元组)

data_results_combined['index1'] = data_results_combined['index'].apply(lambda x: x[0])
data_results_combined['index2'] = data_results_combined['index'].apply(lambda x: x[1])
bmvo0sr5

bmvo0sr52#

df[['index1','index2']] = df['index'].str.split(',',expand=True)

相关问题