(csv merge) the use of merge() and concat() in pandas

Use of merge():

Usage scenario: One or more columns in two DataFrames have the same column name

dic1 = {
    
    'name':['李四', '王五', '赵六'], 'age':[12, 13, 14]}
dic2 = {
    
    'name':['张三', '李四', '王五'], 'class':['A1', 'A2', 'A3']}
df1 = pd.DataFrame(dic1)
df2 = pd.DataFrame(dic2)

'''
  name  age
0   李四   12
1   王五   13
2   赵六   14
  name class
0   张三    A1
1   李四    A2
2   王五    A3
'''

How to merge how ='inner' (default), similar to taking intersection

on: the column name used to connect, if not specified, the intersection of the column names of the two Dataframes is used as the connection key

merge_df = pd.merge(df1, df2, on='name', how = "inner")
'''
  name  age class
0   李四   12    A2
1   王五   13    A3
'''

how ='outer', similar to taking the union

merge_df = pd.merge(df1, df2, on='name', how = "outer")
'''
  name   age class
0   李四  12.0    A2
1   王五  13.0    A3
2   赵六  14.0   NaN
3   张三   NaN    A1
'''

how ='left'('right'), similar to the left connection and right connection in the database

merge_df = pd.merge(df1, df2, on='name', how = "left")
'''
  name  age class
0   李四   12    A2
1   王五   13    A3
2   赵六   14   NaN
'''
merge_df = pd.merge(df1, df2, on='name', how = "right")
'''
  name   age class
0   张三   NaN    A1
1   李四  12.0    A2
2   王五  13.0    A3
'''

The use of concat():

Commonly used parameters
objs: sequence composed of series, dataframe, etc.
axis: 1 axis, 0 axis (default)
join: outer default, optional inner
ignore_index: default False, that is, do not reset the index of the dataframe
sort: default False

dic1 = {
    
    'name':['李四', '王五', '赵六'], 'age':[12, 13, 14]}
dic2 = {
    
    'name':['张三', '李四', '王五'], 'class':['A1', 'A2', 'A3']}
df1 = pd.DataFrame(dic1)
df2 = pd.DataFrame(dic2)

'''
  name  age
0   李四   12
1   王五   13
2   赵六   14
  name class
0   张三    A1
1   李四    A2
2   王五    A3
'''

join ='outer'
0 axis: vertical axis, increase or decrease of rows

new_df = pd.concat([df1, df2], ignore_index=True, join='outer',axis=0)
'''
  name   age class
0   李四  12.0   NaN
1   王五  13.0   NaN
2   赵六  14.0   NaN
3   张三   NaN    A1
4   李四   NaN    A2
5   王五   NaN    A3
'''

join ='outer'
1 axis: horizontal axis, column increase or decrease

new_df = pd.concat([df1, df2], ignore_index=True, join='outer',axis=1)
'''
    0   1   2   3
0  李四  12  张三  A1
1  王五  13  李四  A2
2  赵六  14  王五  A3
'''

Even a little restraint on yourself can make a person strong and powerful
Insert picture description here

Guess you like

Origin blog.csdn.net/qq_43965708/article/details/110821733