首页 > 解决方案 > Python Pandas 数据框列在拆分数据分数上未正确更新

问题描述

我有一个 Python 函数来拆分数据,它被格式化为分数:4/5、1/1、1,2 等。这个函数可以遍历数据框。split() 函数。print() 语句分别显示对变量 s[0] 和 s[1] 的正确拆分。问题是 df_ff_reviews['NumHelpfulVotes'] = s[0] 和 df_ff_reviews['NumVotes'] = s[1] 数据框列没有分别用 s[0]、s[1] 的拆分值更新. 当我查看数据框(头部)时,我看到 NumHelpfulVotes 和 NumVotes 列的所有行都设置为零。从不匹配迭代循环内的 s[0] 和 s[1] 拆分值。

def split_votes():
    for idx, row in df_ff_reviews.iterrows():
        value = ''
        s = ''
        value = str(row['helpfulness'])
        s = value.split('/')
        df_ff_reviews['NumHelpfulVotes'] = s[0]           
        df_ff_reviews['NumVotes'] = s[1]

s[0]): 0
s[1]): 1
s[0]): 19
s[1]): 19
s[0]): 13
s[1]): 13
s[0]): 9
s[1]): 9
s[0]): 3
s[1]): 3

标签: python-3.xpandassplit

解决方案


str.split_expand

df_ff_reviews[['NumHelpfulVotes','NumVotes']]=df_ff_reviews.helpfullness.str.split('/',expand=True)[[0,1]]

推荐阅读