我正在尝试使用条件在 pandas 中创建一个列来创建定性观察。
例如,如果数据框如下所示:
Distance
1 1
2 5
3 40
4 15
我想创建一个新列(我们称之为df['length']
)这是对距离的观察。
例如:
if df[Distance] = 1:
print('Short')
我希望将“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)
但它似乎不起作用。它给了我一个错误:
('Series 的真值不明确。使用 a.empty, a.bool(),
a.item()、a.any() 或 a.all().', '出现在索引 0 处')
基本上,我试图对出租车数据集中的一列进行 5 个定性描述,其中对于大于某个值的每个距离,我将其描述为“长”,或者如果它接近平均值,我将其描述为“平均”等
你需要np.where https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html
import numpy as np
df['Length']=np.where(df['Distance']>10,'Long','Short')
如果你想要多个条件,请使用@sacul解决方案,使用np.选择 https://docs.scipy.org/doc/numpy/reference/generated/numpy.select.html
df['length'] = np.select([df.Distance < 2, df.Distance > 10], ['short', 'long'], 'average')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)