如何基于另一列对数据框列进行切片

d

我有这样的df,

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"]

我的预期输出是

Main                        Length
Sri p                       5
sr                          2
R                           1 
Ra                          2

我试过了

def slicer(row):
    for i in df["Length"]:
        row['Main'].slice(0,i)
    return row

 df.apply(slicer,axis=1)

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

耶斯列尔

apply与索引一起使用

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

或列出理解,zip如果没有NaNs值:

df['Main'] = [a[:b] for a, b in zip(df['Main'], df['Length'])]

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R 数据框:如何根据另一列中不同值的列值对数据进行切片

将数据框的一列除以另一列的切片

如何通过基于名称而不是索引选择一系列列和行来对数据框进行切片?

如何对多列进行切片并对熊猫中的另一列进行排序

如何根据列中值的增量对数据框进行切片?

对包含一列数组的Pandas数据框进行条件切片的更快方法

根据单独数据框中的行和列值对数据框进行切片

如何根据Python中列的字符串长度对数据框中的字符串进行切片?

如何根据一列对数据框进行分组并根据另一列进行转置

如何通过不同的值对一个Pandas数据框列的元素进行切片?

对列中的值进行切片以为另一列创造条件

基于多索引列数据框中的列范围进行切片

熊猫-在另一列中基于int的str(行)切片

在一列上按另一列对数据框进行排序-Pandas

如何用另一个数据框列切片中的值替换数据框列的切片?

根据列表对列进行排序,然后对数据框中的另一列进行排序

如何基于来自另一个数据框的列对数据框进行子集化?

根据列的值和另一列中列表的长度对数据框进行排序

在一列中基于两个值对数据框进行子集

为每个唯一的列对切片数据框

在第一列中基于未知的相同值对numpy数组进行切片的有效方法

重塑数据框切片列

如何使用python根据同一数据框中另一列的值对数据框中列中的值进行排序

将数据框的切片添加到新列中的另一个数据框

基于另一列的 Pandas 数据框缩放列

数据框中基于另一列的列的模式

根据pandas中的条件对数据列进行切片

按列对数据帧进行切片,但将其列入黑名单

使用另一列中的值切片pandas列