【发布时间】:2021-03-03 03:50:08
【问题描述】:
我正在处理大约 32.000.000 行的数据集:
RangeIndex: 32084542 entries, 0 to 32084541
df.head()
time device kpi value
0 2020-10-22 00:04:03+00:00 1-xxxx chassis.routing-engine.0.cpu-idle 100
1 2020-10-22 00:04:06+00:00 2-yyyy chassis.routing-engine.0.cpu-idle 97
2 2020-10-22 00:04:07+00:00 3-zzzz chassis.routing-engine.0.cpu-idle 100
3 2020-10-22 00:04:10+00:00 4-dddd chassis.routing-engine.0.cpu-idle 93
4 2020-10-22 00:04:10+00:00 5-rrrr chassis.routing-engine.0.cpu-idle 99
我的目标是创建一个名为角色的附加列,其中填充了一个正则表达式
这是我的方法
def router_role(row):
if row["device"].startswith("1"):
row["role"] = '1'
if row["device"].startswith("2"):
row["role"] = '2'
if row["device"].startswith("3"):
row["role"] = '3'
if row["device"].startswith("4"):
row["role"] = '4'
return row
那么,
df = df.apply(router_role,axis=1)
但是这需要很多时间......关于其他可能的方法的任何想法?
谢谢
【问题讨论】:
标签: python pandas dataframe machine-learning data-science