可以在pandas中执行左连接,只选择右边的第一个匹配吗?例:
left = pd.DataFrame()
left['age'] = [11, 12]
right = pd.DataFrame()
right['age'] = [10, 11, 11]
right['salary'] = [ 100, 150, 200 ]
left.merge( right, how='left', on='age' )
Run Code Online (Sandbox Code Playgroud)
返回
age salary
0 11 150
1 11 200
2 12 NaN
Run Code Online (Sandbox Code Playgroud)
但我想通过仅仅进行第一场比赛来保留左边的行数.那是:
age salary
0 11 150
2 12 NaN
Run Code Online (Sandbox Code Playgroud)
所以我一直在使用
left.merge( right.drop_duplicates(['age']), how='left', on='age')
Run Code Online (Sandbox Code Playgroud)
但我相信这是正确的完整副本.它闻起来很有趣.
有更优雅的方式吗?
我不知道如何显示 numpy.datetime64 的单位。说:
t=np.datetime64(123456789, 'ms' )
有什么方法告诉我单位是“ms”?
什么是扩展的简洁 pythonic 非就地版本?我厌倦了写作
x = [ 1,2,3 ]
x.extend([4,5])
f(x)
Run Code Online (Sandbox Code Playgroud)
只是想:
f( x.extend( [4,5], inplace=False ) )
Run Code Online (Sandbox Code Playgroud)
管他呢