Skip to main content
 首页 » 编程设计

python之为什么申请没有被应用

2025年05月04日28lori

我有这个初始数据框:

df = pd.DataFrame(data = {'colX': ['TQ95','SM90','SJ07','SH97','TF28']}) 

所以df如下:

    colX 
0   TQ95 
1   SM90 
2   SJ07 
3   SH97 
4   TF28 

不,我创建了一个非常非常简单的函数并将其应用于 df:

def foo(x): 
    return x + 'bar' 
 
df.apply(foo)  

返回:

    colX 
0   TQ95bar 
1   SM90bar 
2   SJ07bar 
3   SH97bar 
4   TF28bar 

那么为什么会出现以下情况:

def bar(x): 
    if len(x) == 4: 
        return 'x' 
    elif len(x) == 6: 
        return 'y' 
    else: 
        return 'z' 
 
df.apply(bar) 

返回这个?

colX    z 
dtype: object 

而不是这个?

    colX 
0   x 
1   x 
2   x 
3   x 
4   x 

请您参考如下方法:

你的意思是:

df['colX'].apply(bar) 

因此,只检查列值的长度。
完整代码:

import pandas as pd 
def bar(x): 
    if len(x) == 4: 
        return 'x' 
    elif len(x) == 6: 
        return 'y' 
    else: 
        return 'z' 
 
df = pd.DataFrame(data = {'colX': ['TQ95','SM90','SJ07','SH97','TF28']}) 
df['colX'] = df['colX'].apply(bar)