首页 > 解决方案 > 将标题名称分配给具有不同列数的 panda 数据表

问题描述

我希望为具有不同列数的熊猫数据框分配一个标题行。基础数据表是公司披露的目标,每个公司的数量不同

例如。这可能是:

df = pd.DataFrame([['apple','become carbon neutral','100% renewable'],['Microsoft','carbon neutral','']])

0      apple  become carbon neutral  100% renewable
1  Microsoft         carbon neutral                

或者

df2 = pd.DataFrame([['nike','set up foundation'],['Amazon','more energy efficient']])
0      nike  set up foundation  
1  amazon         more energy efficient                

因此标题行应该是:

company name, target 1, target 2, target 3, target 4 etc.

实现这一目标的最佳方法是什么?

标签: pythonpandasdataframe

解决方案


假设默认列名0,12

df.columns = ['company name', *map('target {}'.format, df.columns[1:])]

或基于rangeif 列已命名:

df.columns = ['company name', *map('target {}'.format, range(1, len(df.columns)))]

完整的工作示例:

import pandas as pd

df = pd.DataFrame([['apple', 'become carbon neutral', '100% renewable'],
                   ['Microsoft', 'carbon neutral', '']])

df.columns = ['company name', *map('target {}'.format, range(1, len(df.columns)))]
print(df)

df

  company name               target 1        target 2
0        apple  become carbon neutral  100% renewable
1    Microsoft         carbon neutral                

推荐阅读