Python 通过在相同的行上保留公共名称而不使用NAN来连接数据帧

Python 通过在相同的行上保留公共名称而不使用NAN来连接数据帧,python,pandas,Python,Pandas,我想以这种特殊的方式连接这两个数据帧 df: 和df1: name ... time 0 Tom ... 8 1 Ben ... 6 使 name ... time time1 0 Tom ... 13 8 1 Tom ... 16 8 2 Ben ... 10 6 3 Ben ... 12 6 基本上,df1包含Tom和Ben的最快时间,df包含所有其他时间。我想合并数据帧,以便最快的时间总是与其他时间在

我想以这种特殊的方式连接这两个数据帧

df:

和df1:

   name ... time
0   Tom  ...  8
1   Ben  ...  6
使

    name ... time time1
0   Tom  ...  13    8
1   Tom  ...  16    8
2   Ben  ...  10    6
3   Ben  ...  12    6

基本上,df1包含Tom和Ben的最快时间,df包含所有其他时间。我想合并数据帧,以便最快的时间总是与其他时间在同一行。任何帮助都将不胜感激。提前感谢。

您只需使用“合并”即可,然后根据需要重命名列名

>>> df = pd.merge(df1, df2, how='outer', on='name')
>>> df
  name  time_x  time_y
0  Tom      13       8
1  Tom      16       8
2  Ben      10       6
3  Ben      12       6
更改列名:

>>> df.rename(columns={'time_x': 'time', 'time_y': 'time1'}, inplace=True)
>>> df
  name  time  time1
0  Tom    13      8
1  Tom    16      8
2  Ben    10      6
3  Ben    12      6

您只需使用merge执行此操作,然后根据需要重命名列名

>>> df = pd.merge(df1, df2, how='outer', on='name')
>>> df
  name  time_x  time_y
0  Tom      13       8
1  Tom      16       8
2  Ben      10       6
3  Ben      12       6
更改列名:

>>> df.rename(columns={'time_x': 'time', 'time_y': 'time1'}, inplace=True)
>>> df
  name  time  time1
0  Tom    13      8
1  Tom    16      8
2  Ben    10      6
3  Ben    12      6

这是简单的合并为什么名称重复,因为这似乎是合并键?
df.merge(df1,how='left',on='time',后缀=(''1')
。?这是简单的合并为什么名称重复,因为这似乎是合并键?
df.merge(df1,how='left',on='time',后缀=(''1')
。。?