如何将此字符串长度函数应用于数据框中的列?

时间:2019-03-20 17:00:15

标签: python pandas function

我已经编写了一个返回字符串长度的函数,

def string_length():
string = input("Please enter a string: ")
"""This prompts the user to enter a string"""
return(len(string))

我有一个名为film的数据集,其中有一个标题为Phrase的列。我想向我的数据集中添加一个新列,该列将我的函数应用于“短语”列,并为短语中的每个值输入字符串长度。

我尝试使用以下代码:

film['Phrase length']=film['Phrase'].apply(string_length)

但是,这将返回错误:

  

TypeError:string_length()接受0个位置参数,但给出了1个

我需要做什么来解决此代码?

我敢肯定我很想念某些东西,但是我对python还是很陌生!

2 个答案:

答案 0 :(得分:0)

该功能提示用户进行一些输入。如果将其应用于数据框,则此方法将无效。但是,您可以应用内置的len()函数:

film['Phrase length'] = film.Phrase.apply(len)

答案 1 :(得分:0)

如果我正确理解了您的问题,那么您必须在寻找以下内容:

def string_length(str):
    x = len(str)
    return x

df['Phrase length'] = df['Phrase'].apply(lambda x: string_length(x))

df['Phrase length'] = df['Phrase'].map(string_length)

更新:

如果要使用input()输入您选择的列名称,请使用以下内容:

def string_length(data):
    print("Please enter column name:")
    a = input()
    data[a+'_len'] = data[a].astype(str).apply(lambda x: len(x))

其次:

string_length(df)

输入您选择的列名称,然后尝试打印数据框。