我试着在“vol”数据帧中循环,并有条件地检查样本日期是否在特定日期之间。如果是,请为另一列指定一个值。在
我有以下代码:
vol = pd.DataFrame(data=pd.date_range(start='11/3/2015', end='1/29/2019'))
vol.columns = ['sample_date']
vol['hydraulic_vol'] = np.nan
for i in vol.iterrows():
if pd.Timestamp('2015-11-03') <= vol.loc[i,'sample_date'] <= pd.Timestamp('2018-06-07'):
vol.loc[i,'hydraulic_vol'] = 319779
以下是我收到的错误: TypeError:“Series”对象是可变的,因此不能对它们进行哈希处理
另一种方法是将
numpy
模块中的np.where
方法与.between
方法结合使用。在此方法的工作原理如下:
np.where(condition, value if true, value if false)
代码示例
或者您可以将它们组合在一行代码中:
^{pr2}$编辑
我知道你是新来的,所以来python/pandas的时候我也要学习一些东西。在
在一个数据帧上循环应该是你的最后手段,尝试使用},与循环相比,这些方法在速度方面表现得更好。在
vectorized solutions
,在这种情况下.loc
或{你应该这样做:
相关问题 更多 >
编程相关推荐