【问题标题】:Merge rows in a specific order按特定顺序合并行
【发布时间】:2021-10-16 17:05:44
【问题描述】:

不要介意新数据集给出了 NaN,因为它不包含拟合数据

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

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

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

【问题讨论】:

  • 我想你想合并数据框。

标签: python merge concatenation


【解决方案1】:

也许这对你有帮助:

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

输出:

【讨论】:

  • 我试过这个final_df = df.merge(data, on='Full name', how='left')。但是,合并的列仅包含 NaN
  • @A.L.Waterman,你能编辑问题并发送你的数据框吗
  • 不幸的是,数据集是机密的。问题可能是存在一些其他列具有相同名称(例如时间戳)但数据不同的事实吗?
  • @A.L.Waterman,我编辑了帖子并添加了一个代码块,这是你的答案吗?
  • 我用其他数据集对其进行了测试,然后你的代码就可以工作了。因此,我使用的数据集有问题。谢谢!
【解决方案2】:

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

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

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

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’

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2023-02-13
    • 2021-02-27
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多