2024-09-27 00:18:25 发布
网友
我有这样一个数据框:
df col1 col2 col3 ab 1 prab cd 2 cdff ef 3 eef
我想从col3值中删除col1值
最终的数据帧应该是这样的<
df col1 col2 col3 ab 1 pr cd 2 ff ef 3 e
如何以最有效的方式利用熊猫?你知道吗
看起来循环是不可避免的,因为您必须替换/删除子字符串。在这种情况下,列表理解可能会派上用场:
%%timeit df.apply(lambda x: x['col3'].replace(x['col1'], ''), axis=1) # 767 µs ± 24.4 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
而
%%timeit [a.replace(b,'') for a,b in zip(df['col3'], df['col1'])] # 24.4 µs ± 3.18 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
在axis=1上使用.apply和replace:
axis=1
.apply
replace
df['col3'] = df.apply(lambda x: x['col3'].replace(x['col1'], ''), axis=1)
输出
col1 col2 col3 0 ab 1 pr 1 cd 2 ff 2 ef 3 e
或许这可能有用:
df.col3.str.replace(df.col1, "")
另请参见: https://pandas.pydata.org/pandas-docs/stable/user_guide/text.html
看起来循环是不可避免的,因为您必须替换/删除子字符串。在这种情况下,列表理解可能会派上用场:
而
在
axis=1
上使用.apply
和replace
:输出
或许这可能有用:
另请参见: https://pandas.pydata.org/pandas-docs/stable/user_guide/text.html
相关问题 更多 >
编程相关推荐