我是一名有用的助手,可以为您翻译文本。
我希望在符合条件的每一行中,新列中输入“短”这个词。
或者举个例子:
但似乎不起作用。 它给了我一个错误:
('The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().', 'occurred at index 0')
基本上,我正在尝试为出租车数据集中的一列提供5个定性描述,其中对于每个距离大于某个值的距离,我将其描述为“长”或者如果它接近平均值,则我将其描述为“平均”,等等。
我正在尝试使用条件创建pandas中的列,以创建定性观察结果。
例如,如果数据框如下所示:
Distance
1 1
2 5
3 40
4 15
我希望创建一个新的列(我们称之为df['length']
),它是关于距离的观察结果。
例如:
if df[Distance] = 1:
print('Short')
我希望在符合条件的每一行中,新列中输入“短”这个词。
或者举个例子:
if df[Distance] > 10:
print('Long')
我希望符合条件的每一行都在新列中显示为“长”。
我该如何做呢?
我正在尝试将其编写成一个函数。这是我现在拥有的:
def trip_distance(row):
df = pd.read_csv('taxi_january_standard_rate.csv')
if df['trip_distance'] > 50 :
return "Long"
然后我尝试使用它来填充一个新的列:
df['trip_length'] = df.apply(trip_distance , axis=1)
但似乎不起作用。 它给了我一个错误:
('The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().', 'occurred at index 0')
基本上,我正在尝试为出租车数据集中的一列提供5个定性描述,其中对于每个距离大于某个值的距离,我将其描述为“长”或者如果它接近平均值,则我将其描述为“平均”,等等。
numpy.select
将这些值分配给一个新列。 - ALollzdf['length'] = np.select([df.Distance < 2, df.Distance > 10], ['short', 'long'], 'average')
。你可以在相关的文档页面中了解更多关于np.select
的内容。 - sacuL