我正在尝试将数据帧拼接在一起。我有一个列表,其中包含在两个数据框之间匹配的数据的行。
因此,假设数据框架1中的第300行与数据框架2中的第2行是同一家公司。目前,我正在使用两个原始数据框架创建一个新的数据框架,但它没有以正确的方式添加它们。
df_final = pd.DataFrame( df1.iloc[300], df2.iloc[2]])
这样做,我从两个数据帧中得到了两行数据,而我真正想要的是一行,其中两个数据都被水平添加了。因此,如果每个数据框有5列,我希望有10列。
import pandas as pd
position_list = [(0, 85, 83),
(1, 134, 67),
(2, 78, 50),
(3, 89, 83),
(4, 90, 83),
(5, 91, 83)]
ammended_results= Name of Applicant CMU ID CMU Name Capacity Awarded Classification Capacity (MW) Duration (Years) Clearing price (£) Yearly CMU Funding (£) Contract Length Funding (£) New Generation Existing Generation New Capacity Existing Capacity
1 SSE Generation Ltd. BURGH1 Burghfield Yes Existing Generating CMU 44.034 1.0 19.4 854259.6 854259.6 0 1 0.000 44.034
2 SSE Generation Ltd. CBEU01 Deanie 1 Yes Existing Generating CMU 15.886 1.0 19.4 308188.4 308188.4 0 1 0.000 15.886
3 SSE Generation Ltd. CBEU02 Deanie 2 Yes Existing Generating CMU 15.886 1.0 19.4 308188.4 308188.4 0 1 0.000 15.886
...
ammended_register = Unique CMU Identifier Type Delivery Year Name of Applicant CM Unit Name
...
BURG18 T-4 2018 SSEPG (Operations) Limited Burghfield
...
基本上,我想从结果数据框中找到第一个条目,并在寄存器数据框中找到第85个条目。并使用所有这些信息创建一个新的数据框。
目前我正在使用此
df_list=[]
for i in range(len(position_list)):
result = position_list[i][1]
df_final = pd.concat(ammended_results.iloc[i], ammended_register.iloc[results]])
df.reset_index(inplace=True, drop=True)
df_list.append(df)
fr = pd.concat(df_list,axis = 0)
但是我得到的最终数据框没有以正确的方式添加它们
答案 0 :(得分:2)
轻松榨干柠檬
pd.concat([ df1.iloc[300], df2.iloc[2]], axis = 1)