Python 将相同的文本更改为索引列
我有这个数据帧,来自一组相同的数据帧,但它们的列名与总流入相同,但我需要更改这些名称,以指示不同的来源,每个列作为总流入t1,总流入t2 所以我有这个: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]:
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)]