假设我有一个DataFrame,例如:
我可以根据是否将
col1 col2
0 1 A
1 2 B
2 6 A
3 5 C
4 9 C
5 3 A
6 5 B
同时存在多个列表,如:
list_1 = [1, 2, 4]
list_2 = [3, 8]
list_3 = [5, 6, 7, 9]
我可以根据是否将
col1 的值包含在列表中来更新 col2 的值,例如:
for i in list_1:
df.loc[df.col1 == i, 'col2'] = 'A'
for i in list_2:
df.loc[df.col1 == i, 'col2'] = 'B'
for i in list_3:
df.loc[df.col1 == i, 'col2'] = 'C'
然而,这种方法非常慢。当数据框包含30,000行且每个列表包含约5,000-10,000个项目时,计算需要很长时间,尤其是与其他pandas操作相比较的话。有没有更好(更快)的办法来做到这一点?