Python 如何在带有熊猫的数据帧中添加索引和单位引用?

Python 如何在带有熊猫的数据帧中添加索引和单位引用?,python,pandas,dataframe,dictionary,Python,Pandas,Dataframe,Dictionary,我有一个数据框df,其中包含许多不必要的列,还有一个名为dict的字典,其中包含所需的列作为键,每个键内的单位作为项: dict={'time':'date','place':'London'} 我需要一个新的数据框(final_df),其中只有列作为键包含在我的dict中,并将dict的键作为第一行(索引),将dict的每个键内的项作为第二行(索引单位) 当前df示例 所需final_dfdataframe 我试过: dict = {'time': 'date', 'place':

我有一个数据框
df
,其中包含许多不必要的列,还有一个名为
dict
的字典,其中包含所需的列作为键,每个键内的单位作为项:
dict={'time':'date','place':'London'}

我需要一个新的数据框(
final_df
),其中只有列作为键包含在我的
dict
中,并将
dict
的键作为第一行(索引),将
dict
的每个键内的项作为第二行(索引单位)

当前
df
示例

所需
final_df
dataframe

我试过:

    dict = {'time': 'date', 'place': 'London'}
    keys = []
    for key in dict:
        for col in df.columns:
            if col == key:
                keys.append(col)
    final_df = df[keys]
它工作,但我不知道如何包括在第二排的单位。 如何将其添加到我的
final_df

还有其他建议吗?

以下是您想要的示例:

生成一个测试示例(您应该始终发布a)以获得更快、更好的答案:


解决方案:

  • 通过仅筛选数据框中存在的列来创建数据框 字典键
  • 从 dictionary并分配给dataframe,然后再分配回列



  • 注意:请不要将字典命名为
    dict
    ,因为它将覆盖默认的字典功能

    您知道如何将其导出为具有多索引的csv吗
    final.to_csv(output_path+'/test.csv')
    不起作用,我想我需要
    index\u label
    ,但我不知道如何设置它。@Sergio刚刚尝试过,它对我起作用(你需要
    index=False
    ?)。。。你有什么错误吗?是的。。。我得到以下错误:
    AttributeError:'MultiIndex'对象没有属性'to_csv'
    。可能是因为我的字典包含的项目比我的数据框多。@Sergio这意味着您试图将多索引列导出到csv而不是数据框。似乎在你的情况下不存在变量,我只是尝试了
    final.to_csv(…)
    ,它很有效
    np.random.seed(0)
    df = pd.DataFrame(np.random.randint(0,100,(5,4)),columns=list('ABCD'))
    print(df)
    
        A   B   C   D
    0  44  47  64  67
    1  67   9  83  21
    2  36  87  70  88
    3  88  12  58  65
    4  39  87  46  88
    
    d= {'A': 'Col1', 'D': 'Col2'} #reference dictionary
    final = df.loc[:,d.keys()]
    final.columns = pd.MultiIndex.from_arrays((d.keys(),d.values()))
    print(final)
    
         A    D
      Col1 Col2
    0   44   67
    1   67   21
    2   36   88
    3   88   65
    4   39   88