我有以下数据框:
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
谢谢你。
答案 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