按特定顺序合并行

Merge rows in a specific order

没关系,新数据集给出了 NaN,因为它不包含拟合数据

我有一个前后调查,我想创建一个数据集,其中的行包含一个人的所有结果。如何连接两个数据帧以确保在对行进行排序时将列 'Full name' 作为参考点?谢谢!

concatenated = pd.concat([df, data], axis=1)

我尝试了这行 Python 代码,但它没有对行进行排序。

也许这对你有帮助:

import pandas as pd
  
df1 = pd.DataFrame({'last_name': {0: "one", 1: "two", 2: "three"},
                   'first_name': {0: "four", 1: "five", 2: "six"}})

df2 = pd.DataFrame({'last_name': {0: "one", 1: "two", 2: "three"},
                   'Value1': {0: 10, 1: 11, 2: 16},
                   'Value2': {0: 27, 1: 23, 2: 21},
                   'Value3': {0: 43, 1: 33, 2: 17}})
print(df1)

print(df2)

final_df = df1.merge(df2, on='last_name', how='left')
final_df

输出:

如果你想要concat,你可以试试这个:

import pandas as pd
  
df1 = pd.DataFrame({'Date': {0: "first", 1: "second", 2: "third"},
                   'first_name': {0: "four", 1: "five", 2: "six"}})

df2 = pd.DataFrame({'Date': {0: "forth", 1: "fifth", 2: "sixth"},
                   'first_name': {0: "seve", 1: "eight", 2: "nine"}})

final_df = pd.concat([df1, df2,], axis=0)


final_df

输出:

使用合并而不是连接。合并允许您根据您的选择排序您想要的输出

pandas.merge_ordered(left, right, on=None, left_on=None, right_on=None, left_by=None, right_by=None, fill_method=None, suffixes=('_x', '_y'), how='outer')

其中参数表示: **参数

left = DataFrame
right =DataFrame
on   =label or list

您要加入的字段(必须在两个 DataFrame 中)

left_on =label or list
right_on=label or listleft_on docs.
left_by=column name or list of column names
right_by=column name or list of column names
fill_method={‘ffill’, None}, default None
suffixes =list-like,default is (“_x”, “_y”)
how={‘left’, ‘right’, ‘outer’, ‘inner’}, default ‘outer’