我有一个 df 看起来像这样:
df
dim_pptx qp_pptx diff
Absolute Radio 7.39 7.53 0.14
BBC Asian Network 0.13 0.13 0.00
BBC Radio 1 14.41 14.55 0.14
BBC Radio 1Xtra 0.57 0.58 0.01
BBC Radio 2 23.36 23.39 0.03
我想添加一个新列,其中包含基于 df['diff'] 的值
Sản lượng dự kiến:
df
dim_pptx qp_pptx diff sig
Absolute Radio 7.39 7.53 0.14 **
BBC Asian Network 0.13 0.13 0.00 -
BBC Radio 1 14.41 14.55 0.14 **
BBC Radio 1Xtra 0.57 0.58 0.01 -
BBC Radio 2 23.36 23.39 0.03 *
所以条件是:
if value > 0.1:
value = '**'
elif value > 0.02:
value = '*'
khác:
value = '-'
nỗ lực của tôi:
comp_df['sig'] = comp_df.apply(lambda x : '*' if comp_df['diff'] > 0.01 else '', axis=0)
sai lầm:
ValueError: ('The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().', u'occurred at index dim_pptx')
sử dụng DataFrame.apply
时如果您使用 trục=0
它通过列应用条件,要使用 áp dụng
遍历每一行,您需要 trục=1
.
但是鉴于此,您可以使用 Series.apply
thay vì DataFrame.apply
hiện hữu 'diff'
系列中。示例 -
comp_df['sig'] = comp_df['diff'].apply(lambda x: '**' if x > 0.1 else '*' if x > 0.02 else '-')
Tôi là một lập trình viên xuất sắc, rất giỏi!