Python 通过在相同的行上保留公共名称而不使用NAN来连接数据帧
我想以这种特殊的方式连接这两个数据帧 df: 和df1: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包含所有其他时间。我想合并数据帧,以便最快的时间总是与其他时间在
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')
。。?