多索引元组连接



在这种形式中,我有以下多索引元组的列:

df_incumbent_Q.columns

它看起来像这样:

MultiIndex([('Cust Linehaul', '2022Q2'),
('Cust Linehaul', '2022Q3'),
('Cust Linehaul', '2022Q4'),
(  'Load Number', '2022Q2'),
(  'Load Number', '2022Q3'),
(  'Load Number', '2022Q4')],
names=[None, 'Quarter'])

我正在尝试组合列的名称,所以我有这样的东西:

['Cust Linehaul_2022Q2',
'Cust Linehaul_2022Q3',
'Cust Linehaul_2022Q4',
'Load Number_2022Q2',
'Load Number_2022Q3',
'Load Number_2022Q4']

I tried to join them this way

df_incumbent_Q.columns =[''.join(str(c)) for c in df_incumbent_Q.columns]

但是它会返回周期聚合

Index(['('Cust Linehaul', Period('2022Q2', 'Q-DEC'))',
'('Cust Linehaul', Period('2022Q3', 'Q-DEC'))',
'('Cust Linehaul', Period('2022Q4', 'Q-DEC'))',
'('Load Number', Period('2022Q2', 'Q-DEC'))',
'('Load Number', Period('2022Q3', 'Q-DEC'))',
'('Load Number', Period('2022Q4', 'Q-DEC'))'],
dtype='object')

然后我尝试了str.replace方法,但无法摆脱Period( )括号。

pattern = '|'.join(["Period","'Q-DEC'",''])
df_incumbent_Q.columns.str.replace(pattern,'',regex=True)

输出如下

Index(['('Cust Linehaul', ('2022Q2', ))', '('Cust Linehaul', ('2022Q3', ))',
'('Cust Linehaul', ('2022Q4', ))', '('Load Number', ('2022Q2', ))',
'('Load Number', ('2022Q3', ))', '('Load Number', ('2022Q4', ))'],
dtype='object')

理想情况下,我想通过.join()方法解决它,如果这不起作用,我想通过.replace方法解决它。

尝试:

df_incumbent_Q.columns =[f'{a}_{b}' for a, b in df_incumbent_Q.columns]

打印:

Cust Linehaul_2022Q2  Cust Linehaul_2022Q3  Cust Linehaul_2022Q4  Load Number_2022Q2  Load Number_2022Q3  Load Number_2022Q4
0                   NaN                   NaN                   NaN                 NaN                 NaN                 NaN
1                   NaN                   NaN                   NaN                 NaN                 NaN                 NaN
输入dataframe:

Cust Linehaul               Load Number              
Quarter        2022Q2 2022Q3 2022Q4      2022Q2 2022Q3 2022Q4
0                 NaN    NaN    NaN         NaN    NaN    NaN
1                 NaN    NaN    NaN         NaN    NaN    NaN

最新更新