Python 熊猫需要按列合并两个数据帧

Python 熊猫需要按列合并两个数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧,第一个比第二个多很多行,并且有一列,如: A A B B C C 第二种是: A, blue, 1 B, red, 2 C, yellow, 3 我想合并它们,以便得到一个如下所示的数据帧: A, blue, 1 A, blue, 1 B, red, 2 B, red, 2 C, yellow, 3 C, yellow, 3 我该怎么做?df\u left.merge(df\u right,left\u on=left\u column\u name,right\u on=

我有两个数据帧,第一个比第二个多很多行,并且有一列,如:

A
A
B
B
C
C
第二种是:

A, blue, 1
B, red, 2
C, yellow, 3
我想合并它们,以便得到一个如下所示的数据帧:

A, blue, 1
A, blue, 1
B, red, 2
B, red, 2
C, yellow, 3
C, yellow, 3
我该怎么做?

df\u left.merge(df\u right,left\u on=left\u column\u name,right\u on=right\u column\u name)

查看df_left.merge(df_right,left_on=left_column_name,right_on=right_column_name)


检查一下您希望所有键都在一个数据帧中,因此您应该使用merge和how='left'参数,如下所示

import pandas as pd

if __name__ == '__main__':
    df = pd.DataFrame(data=['A', 'A', 'B', 'B', 'C', 'C'], columns=['alpha'])
    df2 = pd.DataFrame(data=[['A', 'blue', 1], ['B', 'red', 2], ['C', 'yellow', 3]], columns=['alpha', 'color', 'idx'])
    print(df.merge(df2, how='left', on='alpha'))

输出

  alpha   color  idx
0     A    blue    1
1     A    blue    1
2     B     red    2
3     B     red    2
4     C  yellow    3
5     C  yellow    3


您希望所有键都在一个数据帧中,因此应该使用merge和how='left'参数,如下所示

import pandas as pd

if __name__ == '__main__':
    df = pd.DataFrame(data=['A', 'A', 'B', 'B', 'C', 'C'], columns=['alpha'])
    df2 = pd.DataFrame(data=[['A', 'blue', 1], ['B', 'red', 2], ['C', 'yellow', 3]], columns=['alpha', 'color', 'idx'])
    print(df.merge(df2, how='left', on='alpha'))

输出

  alpha   color  idx
0     A    blue    1
1     A    blue    1
2     B     red    2
3     B     red    2
4     C  yellow    3
5     C  yellow    3


那对你有用吗?我试过了,对我没用,对你有用吗?我试过了,但对我不起作用。