如何从一个数据框中提取列标题并将其添加到另一个数据框中?

2024-10-03 21:34:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是将小df中的列标题添加到现有的大数据帧中,而无需手动键入名称

这是小数据帧

veddra_term_code    veddra_version  veddra_term_name    number_of_animals_affected  accuracy
335                      11               Emesis        NaN                           NaN
142                      11           Anaemia     NOS   NaN                            NaN

大数据帧与上述类似,但有四十列

这是我用来从dict中提取小数据帧的代码

df = pd.DataFrame(reaction for result in d['results'] for reaction in result['reaction']) #get reaction data
df

Tags: 数据in名称标题目标dffor键入
3条回答

df.columns将为您提供一个列名称数组

您可以向dataframe.reindex传递一个列列表,其中包括现有列和新列。如果数据帧中还不存在列,它将作为值NaN获取

假设df是您希望用列扩展的大数据帧。然后,您可以从小型数据帧创建一个新的列名列表(columns_to_add),并将它们组合起来。然后在大数据帧上调用reindex

import pandas as pd

df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})

existing_columns = df.columns.tolist()
columns_to_add = ["C", "D"] # or use small_df.columns.tolist()
new_columns = existing_columns + columns_to_add

df = df.reindex(columns = new_columns)

这将产生:

   A  B   C   D
0  1  2 NaN NaN
1  2  3 NaN NaN
2  3  4 NaN NaN

如果不喜欢NaN,可以通过传递关键字fill_value来使用不同的值。 (例如df.reindex(columns = new_columns, fill_value=0)

import numpy as np
#loop small dataframe headers
for i in small_df.columns:
    # if large df doesnt have the header, create the header
    if i not in large_df.columns:
        #creates new header with no data
        large_df.loc[:,i]=np.nan

相关问题 更多 >