首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从一个数据帧中提取列标题并将其添加到另一个数据帧中?

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

Stack Overflow用户
提问于 2021-01-20 00:56:15
回答 3查看 280关注 0票数 1

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

这是一个小的数据框架。

代码语言:javascript
复制
veddra_term_code    veddra_version  veddra_term_name    number_of_animals_affected  accuracy
335                      11               Emesis        NaN                           NaN
142                      11           Anaemia     NOS   NaN                            NaN

大型数据帧类似于上面的内容,但它有40列。

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

代码语言:javascript
复制
df = pd.DataFrame(reaction for result in d['results'] for reaction in result['reaction']) #get reaction data
df
EN

回答 3

Stack Overflow用户

发布于 2021-01-20 01:25:01

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

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

代码语言:javascript
复制
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)

这将产生:

代码语言:javascript
复制
   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)

票数 1
EN

Stack Overflow用户

发布于 2021-01-20 00:59:58

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

票数 0
EN

Stack Overflow用户

发布于 2021-01-20 01:13:11

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65796021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档