使用pd.Grouper分组时遇真值歧义错误,求解决方法
问题排查与解决
错误原因
你传入pd.Grouper的key参数是df['Datetime'](一个Series对象),但key参数要求传入列名字符串。当pandas尝试解析这个Series时,会触发布尔值判断逻辑——而Series没有单一的布尔值(无法确定是要判断所有元素为真还是任意元素为真),因此抛出The truth value of a Series is ambiguous错误。
修复方案
根据你的数据结构,选择以下任意一种写法:
方案1:使用列名作为key参数
将key=df['Datetime']改为key='Datetime',直接指定列名:
df['USDT_volume'].groupby(pd.Grouper(freq='60min', key='Datetime')).mean().dropna()
方案2:调整分组写法(更直观)
先对整个DataFrame按时间分组,再提取目标列计算均值:
df.groupby(pd.Grouper(key='Datetime', freq='60min'))['USDT_volume'].mean().dropna()
方案3:如果Datetime是DataFrame的索引
可以用resample简化代码(专门针对时间索引的重采样操作,效率更高):
df['USDT_volume'].resample('60min').mean().dropna()
内容的提问来源于stack exchange,提问作者Sajede Ks77
相关产品推荐
相关产品推荐

