Answers:
您可以合并sub-DataFrame(仅包含那些列):
df2[list('xab')] # df2 but only with columns x, a, and b
df1.merge(df2[list('xab')])
list('xab')
接受字符串'xab'的每个元素(字母)并将其转换为列表元素,然后list('xab')
返回['x', 'a', 'b']
。如果每列都有一个字母作为名称,则该方法有效。在您的情况下,我认为您需要执行df1.merge(df2 ['Unique_External_Users'],* other_arguments)。...最有可能你已经解决了它现在,就要离开这个新手身边,和我一样
如果要从目标数据框中删除列,但联接需要该列,则可以执行以下操作:
df1 = df1.merge(df2[['a', 'b', 'key1']], how = 'left',
left_on = 'key2', right_on = 'key1').drop('key1')
该.drop('key1')
部分将防止“ key1”保留在结果数据帧中,尽管它首先需要加入。
KeyError: "['key1'] not found in axis"
您可以使用.loc
选择所有行的特定列,然后将其拉出。下面是一个示例:
pandas.merge(dataframe1, dataframe2.iloc[:, [0:5]], how='left', on='key')
在此示例中,您要合并dataframe1和dataframe2。您已选择对“键”进行外部左连接。但是,对于dataframe2,您指定.iloc
了允许您以数字格式指定想要的行和列的方法。使用:
,选择所有行,但[0:5]
选择前5列。您可以使用.loc
按名称指定,但是如果您使用长列名称,则.iloc
可能会更好。