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

Python 如何从一个数据框中提取列标题并将其添加到另一个数据框中?,python,pandas,dataframe,Python,Pandas,Dataframe,我的目标是将小df中的列标题添加到现有的大数据帧中,而无需手动键入名称 这是小数据帧 veddra_term_code veddra_version veddra_term_name number_of_animals_affected accuracy 335 11 Emesis NaN NaN 142

我的目标是将小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(d中结果的反应['results']中结果的反应['results'])#获取反应数据
df

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

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

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
假设
df
是您希望用列扩展的大数据帧。然后,您可以从小型数据框中创建一个新的列名列表(
columns\u to\u add
),并将它们组合起来。然后在大数据帧上调用
reindex

veddra_term_code    veddra_version  veddra_term_name    number_of_animals_affected  accuracy
335                      11               Emesis        NaN                           NaN
142                      11           Anaemia     NOS   NaN                            NaN
将熊猫作为pd导入
df=pd.DataFrame({“A”:[1,2,3],“B”:[2,3,4]})
现有_columns=df.columns.tolist()
列添加=[“C”,“D”]#或使用小的_df.columns.tolist()
新列=现有列+要添加的列
df=df.reindex(列=新列)
这将产生:

   A  B   C   D
0  1  2 NaN NaN
1  2  3 NaN NaN
2  3  4 NaN NaN
如果您不喜欢
NaN
,可以通过传递关键字
fill\u value
来使用不同的值。
(例如,
df.reindex(columns=new\u columns,fill\u value=0)

使用列表理解可以更有效地完成此操作
[x代表df.colnames中的x,如果x不在df2.colnames中]
真正的答案隐藏在注释中:-)谢谢。这会添加包含数据的新列,但随后会从大型df中删除数据。我需要弄清楚,不客气!很难理解为什么大型df中的现有数据会被删除,因为事实并非如此。您可以执行我提供的脚本,并看到原始数据仍然存在。是否可以打印现有列名和新列名?生成的df是否包含原始列和来自小df的列?还是仅包含来自小df的列?“删除数据”是什么意思?该命令不应删除现有数据,而应仅使用定义的值初始化新列(如
NaN
)。