我的目标是将小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大型数据帧类似于上面的内容,但它有40列。
这是我用来从dict中提取小数据帧的代码。
df = pd.DataFrame(reaction for result in d['results'] for reaction in result['reaction']) #get reaction data
df发布于 2021-01-20 01:25:01
您可以向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)。
发布于 2021-01-20 00:59:58
df.columns将为您提供一个列名的数组
发布于 2021-01-20 01:13:11
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.nanhttps://stackoverflow.com/questions/65796021
复制相似问题