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())]