如何通过value_counts()在数据框上创建列

时间:2020-06-13 13:29:59

标签: python pandas dataframe

我有以下数据框:

       df = pd.DataFrame({'ID': ['4338', '4466', '1024',
                                 '4338', '4338', '5548'], 
                          'Instrument': ['temp_sensor', 'temp_sensor', 'temp_sensor',
                                         'strain_gauge', 'light_sensor',
                                         'strain gauge']})


                  print(df)

                   ID      Instrument
                  4338     temp_sensor
                  4466     temp_sensor
                  1024     temp_sensor
                  4338     strain_gauge
                  4338     light_sensor
                  5548     strain_gauge

我想计算“仪器”列。所以我做了下面的代码:

        Result = df['Instrument'].value_counts() / 2

        print(Result)

        temp_sensor     1.5
        strain_gauge    1.0
        light_sensor    0.5

代码正在运行。但我想将其分配为数据框上的一列。

所需的输出将是:

                    ID     Instrument         Result
                  4338     temp_sensor        1.5
                  4466     temp_sensor        1.5
                  1024     temp_sensor        1.5
                  4338     strain_gauge       1.0
                  4338     light_sensor       0.5
                  5548     strain_gauge       1.0

谢谢你。

1 个答案:

答案 0 :(得分:1)

让我们做transform

df.groupby('Instrument')['ID'].transform('count')/2
0    1.5
1    1.5
2    1.5
3    1.0
4    0.5
5    1.0
Name: ID, dtype: float64