使用 Pandas DataFrame 创建三个新列

我在下面有一个数据框,并尝试创建更大、更少和计数的三个新列。条件是计算有多少值大于/小于平均值并将它们相加。


df = 

            APPL       Std_1       Std_2       Std_3          Mean

       0   ACCMGR      106.8754    130.1600    107.1861    114.750510

       1   ACCOUNTS    121.7034    113.4927    114.5482    116.581458

       2   AUTH        116.8585    112.4487    115.2700    114.859050


def make_count(comp_cols, mean_col):

    count_d = {'greater': 0, 'less': 0}

    for col in comp_cols:

        if col > mean_col:

            count_d['greater'] += 1

        elif col < mean_col:

            count_d['less'] += 1

    return count_d['greater'], count_d['less'], (count_d['greater'] + count_d['less'])



def apply_make_count(df):

    a,b,c,*d= df.apply(lambda row: make_count([row['Std_1'], row['Std_2'], row['Std_3']], row['Mean of Std']), axis=1)

    df['greater'],df['less'],df['count']=a,b,c


apply_make_count(df)

但我得到了错误显示:


13     df['greater'],df['less'],df['count']=list(zip(a,b,c))



ValueError: Length of values does not match length of index

我想成为的输出


 df = 

    APPL       Std_1       Std_2       Std_3      Mean  greater less    count

0   ACCMGR      106.8754    130.1600    107.1861    114.750510        1    2        3

1   ACCOUNTS    121.7034    113.4927    114.5482    116.581458        1    2        3

2   AUTH        116.8585    112.4487    115.2700    114.859050        2    1        3


人到中年有点甜
浏览 343回答 3
3回答

哈士奇WWW

尝试df['greater'] = (df.iloc[:, 1:4].values > df[['Mean']].values).sum(axis=1)df['less'] = (df.iloc[:, 1:4].values < df[['Mean']].values).sum(axis=1)df['count'] = df.iloc[:, 1:4].count(1)&nbsp; &nbsp; APPL&nbsp; &nbsp; &nbsp; &nbsp; Std_1&nbsp; &nbsp; &nbsp; &nbsp;Std_2&nbsp; &nbsp; &nbsp; &nbsp;Std_3&nbsp; &nbsp; &nbsp; &nbsp;Mean&nbsp; &nbsp; &nbsp; &nbsp;greater&nbsp; less&nbsp; &nbsp; count0&nbsp; &nbsp;ACCMGR&nbsp; &nbsp; &nbsp; 106.8754&nbsp; &nbsp; 130.1600&nbsp; &nbsp; 107.1861&nbsp; &nbsp; 114.750510&nbsp; 1&nbsp; &nbsp; &nbsp; &nbsp;2&nbsp; &nbsp; &nbsp; &nbsp;31&nbsp; &nbsp;ACCOUNTS&nbsp; &nbsp; 121.7034&nbsp; &nbsp; 113.4927&nbsp; &nbsp; 114.5482&nbsp; &nbsp; 116.581458&nbsp; 1&nbsp; &nbsp; &nbsp; &nbsp;2&nbsp; &nbsp; &nbsp; &nbsp;32&nbsp; &nbsp;AUTH&nbsp; &nbsp; &nbsp; &nbsp; 116.8585&nbsp; &nbsp; 112.4487&nbsp; &nbsp; 115.2700&nbsp; &nbsp; 114.859050&nbsp; 2&nbsp; &nbsp; &nbsp; &nbsp;1&nbsp; &nbsp; &nbsp; &nbsp;3
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python