gpt4 book ai didi

python - 如何根据条件在 Pandas 中构建新列(新列应输出字符串)

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:10 26 4
gpt4 key购买 nike

我正在尝试使用条件在 pandas 中创建一个列来创建定性观察。

例如,如果数据框如下所示:

      Distance      
1 1
2 5
3 40
4 15

我想创建一个新列(我们称之为 df['length']),这是对距离的观察。

例如:

if df[Distance] = 1:
print('Short')

我希望将“短”输入到符合条件的每一行的新列中。

或者例如:

if df[Distance] > 10:
print('Long')

我希望新列中符合条件的每一行都为“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 种定性描述,其中对于大于特定值的每个距离,我将其描述为“长”,或者如果它接近平均值,我将其描述为“平均”等。

最佳答案

你需要np.where

 import numpy as np
df['Length']=np.where(df['Distance']>10,'Long','Short')

如果您需要多个条件,请使用@sacul 解决方案,使用np.select

df['length'] = np.select([df.Distance < 2, df.Distance > 10], ['short', 'long'], 'average')

关于python - 如何根据条件在 Pandas 中构建新列(新列应输出字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51276832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com