繁体   English   中英

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

[英]How do I apply this string length function to a column in my dataframe?

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

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

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

我尝试使用以下代码:

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

但是,这会返回错误:

类型错误:string_length() 采用 0 个位置参数,但给出了 1 个

我需要做什么来修复此代码?

我确定我错过了一些非常愚蠢的东西,但我对 python 还是很陌生!

该函数提示用户进行一些输入。 如果您将其应用于数据帧,这将不起作用。 但是,您可以应用内置的 len() 函数:

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

如果我正确理解您的问题,那么您一定是在寻找这个:

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)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM