我有一个熊猫数据帧,如下所示:
df:
col1 col2
ACDCAAAAA 4
CDACAAA 2
ADDCAAAAA 3
我需要根据相应的col2值修剪col1字符串,如下所示:
dfout:
col1 col2
ACDCA 4
CDACA 2
ADDCAA 3
我尝试过:df['col1].str[:-(df['col2'])]
,但在输出中得到了NaN。
有人知道怎么做吗?谢谢你抽出时间。
将列表压缩与zip
:一起使用
df['new'] = [a[:-b] for a, b in zip(df['col1'], df['col2'])]
正则表达式选项可能是:
df["col1"] = df["col1"].str.replace(r'.{' + df["col2"].astype(str) + r'}$', '')
使用df.apply
:
In [2613]: df['col1'] = df.apply(lambda x: x['col1'][: x['col2'] + 1], 1)