Python 将相同的文本更改为索引列

Python 将相同的文本更改为索引列,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,我有这个数据帧,来自一组相同的数据帧,但它们的列名与总流入相同,但我需要更改这些名称,以指示不同的来源,每个列作为总流入t1,总流入t2 所以我有这个: In [227]: all = DataFrame([node_t1["total_inflow"], node_t2["total_inflow"], node_t3["total_inflow"], node_t4["total_inflow"], node_t5["total_inflow"]]).T Out[227]:

我有这个数据帧,来自一组相同的数据帧,但它们的列名与总流入相同,但我需要更改这些名称,以指示不同的来源,每个列作为总流入t1,总流入t2

所以我有这个:

In [227]: 
all = DataFrame([node_t1["total_inflow"], node_t2["total_inflow"], node_t3["total_inflow"], node_t4["total_inflow"], node_t5["total_inflow"]]).T



Out[227]:
    total_inflow    total_inflow    total_inflow    total_inflow    total_inflow
time                    
01/01/01 00:01:00   0.0085  0.0040  0.0002  0.0001  0.0001
01/01/01 00:02:00   0.2556  0.1669  0.0590  0.0012  0.0001
01/01/01 00:03:00   0.9935  0.7699  0.3792  0.0283  0.0002
01/01/01 00:04:00   1.3873  1.2879  0.8767  0.1614  0.0011
所以我需要得到这个:

Out[227]:
    total_inflow_t1     total_inflow_t2     total_inflow_t3     total_inflow_t4     total_inflow_t5
time                    
01/01/01 00:01:00   0.0085  0.0040  0.0002  0.0001  0.0001
01/01/01 00:02:00   0.2556  0.1669  0.0590  0.0012  0.0001
01/01/01 00:03:00   0.9935  0.7699  0.3792  0.0283  0.0002
01/01/01 00:04:00   1.3873  1.2879  0.8767  0.1614  0.0011

创建dataframe all后,使用以下内容更新列名:

all.columns = ['total_inflow_t1', 'total_inflow_t2', 'total_inflow_t3',
               'total_inflow_t4', 'total_inflow_t5']

另一种方法是在pd.concat中使用keys参数:


这是一个更通用的解决方案。它将为所有列添加后缀

df.columns = ['{}_t{}'.format(k,i+1) for i,k in enumerate(df.columns)]

如果其中一个答案解决了您的问题,请单击其左侧的复选标记接受它。
df.columns = ['{}_t{}'.format(k,i+1) for i,k in enumerate(df.columns)]