如何基于另一列切片数据帧列

2024-09-27 00:13:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样的测向仪

Main                        Length
Sri playnig well cricket    5
sri went out                2
Ram is in                   1 
Ram went to UK,US           2

我正在尝试分割df["Main"] based on df["Length"]

我的预期产出是

^{pr2}$

我试过了

^{3}$

但是我得到了,AttributeError: ("'str' object has no attribute 'slice'", 'occurred at index 0') 请帮忙。在


Tags: toindfismainoutlengthram
1条回答
网友
1楼 · 发布于 2024-09-27 00:13:06

^{}与索引一起使用:

df['Main'] = df.apply(lambda x: x['Main'][:x['Length']], axis=1)

如果没有NaN的值,则用zip列出理解:

^{pr2}$
print(df)
    Main  Length
0  Sri p       5
1     sr       2
2      R       1
3     Ra       2

如需更一般的解决方案,请使用if-else

df['Main'] = [a[:b] if len(a) < b else a for a, b in zip(df['Main'], df['Length'])]
print(df)
                       Main  Length
0  Sri playnig well cricket     100
1              sri went out       2
2                 Ram is in       1
3         Ram went to UK,US       2

相关问题 更多 >

    热门问题