首页 > 解决方案 > Pandas 将列中的字符串替换为 int

问题描述

我是熊猫和python的初学者,寻求一点帮助。这是我的数据集,k_symbol 列标签为 UVER 或 SIPO,我想将 UVER 替换为 int 0,将 SIPO 替换为 int 1。

数据集

我尝试了 dff.replace(to_replace=['k_symbol'], value=[1, 0]),但它似乎不正确。感谢任何建议

标签: pythonpandas

解决方案


apply()功能是出了名的慢,所以如果你关心速度,考虑这些解决方案之一

1) 地图()

df["k_symbol"].map({"UVER":0, "SIPO":1})

2) boolean 到 int 的转换

df["k_symbol"] = (df["k_symbol"] == "SIPO").astype(int)

计时

%%timeit
df["k_symbol"] = (df["k_symbol"] == "SIPO").astype(int)
10 loops, best of 3: 83.3 ms per loop

%%timeit
df['k_symbol'].apply(lambda x : 0 if x == 'UVER' else 1 )
1 loop, best of 3: 550 ms per loop

%%timeit
df["k_symbol"].map({"UVER":0,"SIPO":1})
10 loops, best of 3: 83.6 ms per loop


推荐阅读