0

问题:如果国家的可再生能源百分比值等于或高于前 15 名中所有国家的中位数,则创建一个新列,如果该国家的可再生能源百分比值低于中位数,则创建一个 0。

我的解决方案:

medi = Top15['% Renewable'].median()

if Top15['% Renewable'] >= medi:

    Top15['new col'] = 1

else:

    Top15['new col'] = 0

Top15

错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

帮助:有人可以告诉我为什么会出现这个错误吗?单击此链接以查看数据框

4

3 回答 3

0

Apply df['new column name'] = df['column name'].apply(lambda x: 'value if condition is met' if x condition else 'value if condition is not meet')

于 2020-03-28T05:10:26.717 回答
0
medi = Top15['% Renewable'].median()
Top15['new col'] = Top15['% Renewable'].transform(lambda value: 1 if value>=medi else 0)
于 2020-03-28T06:04:01.433 回答
0
medi = Top15['% Renewable'].median()
Top15['new col'] = Top15['% Renewable'].apply(lambda x:1 if x>medi else 0)
于 2020-03-28T06:30:17.070 回答