Python 如何缩短代码以生成数据帧?

Python 如何缩短代码以生成数据帧?,python,pandas,Python,Pandas,我想从另一个数据帧df的列col中创建一个具有特定列名的数据帧df1,并与另一个数据帧df2进行合并 df Name House 0 John London 1 John London 2 John London 3 Tom New York 4 Tom New York df2 Col Val 0 Tom 3 1 John 2 2 Alex 5 3 Sarah 2 这就是我正在做的

我想从另一个数据帧
df
的列
col
中创建一个具有特定列名的数据帧
df1
,并与另一个数据帧
df2
进行合并

df
    Name   House
0   John   London
1   John   London
2   John   London
3   Tom    New York
4   Tom    New York

df2
     Col  Val
0    Tom    3
1    John   2
2    Alex   5
3    Sarah  2
这就是我正在做的

import pandas as pd
x = pd.unique(df['Name'])
x = pd.DataFrame(x)
x.columns = ['col']
df1 = pd.merge(x, df2, on = 'Col')

df1
    Col  Val 
0   Tom    3
1   John   2

你只是在寻找一种更好的方法来做你正在做的事情吗?当我需要过滤数据帧时,我通常会这样做

import pandas as pd
names = set(df['Name'].values)
smaller_df = df2[df2['Col'].isin(names)]

编辑,因为我不理解OP的问题。

请发布一个。您可以在创建数据框时将列名作为命名参数传递。这在文档中。这是一行,但实际上,我认为这有点多余。df.drop_duplicates('col')我认为您需要
df2[df2.col.isin(df.Name.unique())]