计算两个不同列中的单词数并按行求和

2024-05-13 18:42:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算两个不同列中的字数,并在一个额外的列中保存加法的结果

数据和期望结果的示例:

id  question                     answer             word_count
1   Lorem ipsum dolor sit amet   Lorem ipsum dolor  8
2   Lorem ipsum                  ipsum              3
3   Lorem ipsum dolor sit        Lorem              5

以下代码不起作用:

df['word_count'] = df[['question', 'answer']].apply(lambda x: len(str(x).split(" ")))

Tags: 数据代码answerid示例dfcountword
3条回答

试试这个:

df['word_count'] = df.apply(
    lambda row: len(row['question'].strip().split()) + 
                len(row['answer'].strip().split()), axis=1)

简而言之,它是如何工作的df.apply(func, axis=1)为数据帧中的每一行应用函数func,并生成一系列结果^如果前导空格和尾随空格是空的,则需要{}来剪切它们.split()生成字符串中单独单词的列表len()计算列表的元素数

使用str.lenstr.split

Ex:

df = pd.read_csv(StringIO(s))
df["word_count"] = df['question'].str.split().str.len() + df['answer'].str.split().str.len()
print(df)

输出:

                     question             answer  word_count
0  Lorem ipsum dolor sit amet  Lorem ipsum dolor           8
1                 Lorem ipsum              ipsum           3
2       Lorem ipsum dolor sit              Lorem           5

试试这个:

df['word_count'] = df['question'].apply(lambda x: len(str(x).split(" ")))+df['answer'].apply(lambda x: len(str(x).split(" ")))

相关问题 更多 >