在这种形式中,我有以下多索引元组的列:
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