将两列彼此相邻

concating two columns next to eachother

我写了一个函数,通过 input() 收集一些数据,这对手头的问题并不重要。但是最后我需要 .concat 两列。 到目前为止,我已经在一定程度上发挥了作用,但并不完美。 {def visualise_country():

data = pd.read_csv('tas_pr_1991_2015_AC.csv')

target_frame = get_info()
df1 = pd.DataFrame(data.loc[data['country'] == target_frame[0]])
df1 = pd.DataFrame(df1.loc[df1['year'] == int(target_frame[2])])
df1 = df1[target_frame[4]]

df2 = pd.DataFrame(data.loc[data['country'] == target_frame[1]])
df2 = pd.DataFrame(df2.loc[df2['year'] == int(target_frame[3])])
df2 = df2[target_frame[4]]

frame_list = [df1,df2]

df = pd.concat(frame_list, axis=1)

print("Data for {} in comparison with {}. Comparison years for {}: {} and {}: ".format(target_frame[0],target_frame[1],target_frame[0],target_frame[2],target_frame[1],target_frame[3]))

return df}

Target_frame 只是一个元组,其中包含收集列所需的收集信息。

输出:

1 - NaN 
2 - NaN 
3 - NaN
4 - NaN
NaN - 5
NaN - 6
NaN - 7
NaN - 8

期望的输出:

1 - 5
2 - 6
3 - 7
4 - 8

在所有 DataFrames:

中需要相同的索引值
frame_list = [x.reset_index(drop=True) for x in [df1,df2]]

或者:

df1.index = df2.index
frame_list = [df1,df2]
df = pd.concat(frame_list, axis=1)

或者:

df1 = df1[target_frame[4]].reset_index(drop=True)
df2 = df2[target_frame[4]].reset_index(drop=True)
frame_list = [df1,df2]
df = pd.concat(frame_list, axis=1)