python-3.x - 在遍历它时查找熊猫数据框的当前值
问题描述
因此,我想根据每一行的值替换我的 pandas 数据框中的列中的值。它类似于规范化,除了我只想要整数值。
df.head()
Sampling Date NO2 RSPM/PM10 SO2 Class
0 2006-01-03 30.8 116.0 6.7 NaN
1 2006-01-06 48.0 145.0 10.5 NaN
2 2006-01-12 44.5 166.0 8.5 NaN
3 2006-01-17 44.3 144.0 9.5 NaN
4 2006-01-20 51.3 113.0 7.3 NaN
def normalizeValues(type, val):
if type=='NO2':
if val>=0 and val<=100:
return 1
elif val>=101 and val<=350:
return 2
else:
return 3
df['NO2']=normalizeValues("NO2",df['NO2'])
我期待
df.head()
Sampling Date NO2 RSPM/PM10 SO2 Class
0 2006-01-03 1 116.0 6.7 NaN
1 2006-01-06 1 145.0 10.5 NaN
2 2006-01-12 1 166.0 8.5 NaN
3 2006-01-17 1 144.0 9.5 NaN
4 2006-01-20 1 113.0 7.3 NaN
但是,相反,我得到一个错误
ValueError Traceback (most recent call last)
<ipython-input-18-31b35122d724> in <module>()
----> 1 df['NO2']=normalizeValues("NO2",df.NO2)
<ipython-input-17-99deab871e75> in normalizeValues(type, val)
1 def normalizeValues(type, val):
2 if type=='NO2':
----> 3 if val>=0 and val<=100:
4 return 1
5 elif val>=101 and val<=350:
/usr/local/lib/python2.7/dist-packages/pandas/core/generic.pyc in __nonzero__(self)
953 raise ValueError("The truth value of a {0} is ambiguous. "
954 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
--> 955 .format(self.__class__.__name__))
956
957 __bool__ = __nonzero__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
解决方案
你可以使用这样的东西 -
def normalize(val):
if val < 100:
return 1
elif val > 100 and val < 350:
return 2
else:
return 3
df['NO2'] = df['NO2'].apply(normalize)
推荐阅读
- pandas - 在 GridSearch 和交叉验证中,我只得到 XGBClassifier 的 `accuracy_score` 而不是 `roc_auc`
- ios - 如何将 iPhone 样式的表格视图变成 iPad 样式的表格视图 (Swift)
- c++ - Python3 C++ 模块 - 异常 - GIL 未持有
- python - python问题中的鼠标滚轮单击绑定
- python - python中的map函数,当为x^3映射大数给我负值时
- bootstrap-4 - 调整屏幕大小时,我正在制作卡片内联块,卡片没有响应
- javascript - 矩阵蛇阵
- .htaccess - 资产相对于根目录,但 html 文件位于子文件夹中
- r - R:使用 select_if() 和 gsub() 时将字符类型转换为数字类型时出错
- flutter - Flutter Web 卡在白屏