我已经编写了一个返回字符串长度的函数,
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还是很陌生!
答案 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)
输入您选择的列名称,然后尝试打印数据框。