Pandas获得与SQL语句相同结果的python方法是什么:“updateleftjoinsetwhere”?

2024-09-30 08:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在下面的SQL结构中复制“updatedataframe1 LEFT JON dataframe2 SET dataframe1.column1=dataframe2.column2 WHERE dataframe1.column3>;X“

我知道可以合并数据帧,然后使用“.where”处理合并的列

然而,这似乎并不是一个很好的解决方案

df = pd.merge(df1,df2, suffix(a,b))
df['clmn1'] = df['clmn1_b'].where( df[clmn1]>0, df['clmn1_b'])

有没有更好的方法达到目标? 谢谢


Tags: dfsqlwhere结构leftsetcolumn1jon
1条回答
网友
1楼 · 发布于 2024-09-30 08:29:58

要使用评论中的示例,请执行以下操作:

In [21]: df
Out[21]:
     Name Gender country
0    Jack      M     USA
1    Nick      M      UK
2  Alphio      F      RU
3   Jenny      F     USA

In [22]: country_map =  {'USA': 'United States', 'UK': 'United Kingdom', 'RU': 'Russia'}

In [23]: df.country.map(country_map)
Out[23]:
0     United States
1    United Kingdom
2            Russia
3     United States
Name: country, dtype: object

要仅更新M行,可以使用loc和update:

In [24]: df.country.update(df[df.Gender == 'M'].country.map(country_map))

In [25]: df
Out[25]:
     Name Gender         country
0    Jack      M   United States
1    Nick      M  United Kingdom
2  Alphio      F              RU
3   Jenny      F             USA

相关问题 更多 >

    热门问题