用 Pandas 复制 SQL "update case when..." 的最佳方法?

Best way to replicate SQL "update case when..." with Pandas?

我有这个示例数据集

City
LAL
NYK
Dallas
Detroit
SF
Chicago
Denver
Phoenix
Toronto

我想做的是用特定值更新某些值,其余部分我将保持原样。

所以,对于 SQL 我会做这样的事情:

update table1
set city = case 
when city='LAL' then 'Los Angeles'
when city='NYK' then 'New York'
Else city
end

在 Pandas 中执行此操作的最佳方法是什么?

您可以像这样直接替换值:

replacement_dict = {"LAL": "Los Angeles", "NYK": "New York"}
for key, value in replacement_dict.items():
    df['City'][df['City'] == key] = value

您可以使用 replace() 替换它。一种选择是定义字典。

示例

df = pd.DataFrame({'City':["LAL","NYK","Dallas","Detroit","SF","Chicago","Denver","Phoenix","Toronto"]})
df.replace({"LAL": "Los Angeles", "NYK": "New York"})

在“城市”列中使用 replace

df['City'] = df['City'].replace({"LAL": "Los Angeles", "NYK": "New York"})

输出:

          City
0  Los Angeles
1     New York
2       Dallas
3      Detroit
4           SF
5      Chicago
6       Denver
7      Phoenix
8      Toronto