ValueError:缓冲区数据类型不匹配,预期为“Python 对象”,但得到“长”

问题描述 投票:0回答:1

我有一个数据框,可以计算过去 7 天内新冠病例的移动平均值和病例的变化率。我在尝试按“城市”和“日期”对数据框进行分组时遇到错误。如果删除groupby,代码会运行但结果是错误的

  casos_por_estado['soma_casos_7d'] = casos_por_estado.groupby(['municipio'])['casosnovos'].rolling(window=7).sum()
  casos_por_estado['media_casos_7d'] = casos_por_estado['soma_casos_7d'] / 7
  casos_por_estado['tx_variacaocasos'] = casos_por_estado['media_casos_7d']/casos_por_estado['media_casos_7d'].shift(periods=14)
  casos_por_estado['tendenciacasos'] = casos_por_estado['tx_variacaocasos'].apply(get_trend)

  if temp_is_empty:
    temp_ = casos_por_estado
    temp_is_empty = False
  else:
    temp_ = pd.concat([casos_por_estado], ignore_index=True)
    #temp_ = pd.concat([s.reset_index(drop=True) for s in to_concat], axis=1)


casos_covid = temp_
temp_ = None
python pandas
1个回答
0
投票

如果代码在删除 groupby 时运行 - 也许传递给 groupby 的“municipio”列中的某些值不是字符串/对象?

也许你可以使用 -

检查
print(casos_por_estado['municipio'].apply(type).value_counts())

non_string_values = casos_por_estado['municipio'].apply(lambda x: not isinstance(x, str))
print(casos_por_estado[non_string_values]['municipio'].head())
© www.soinside.com 2019 - 2024. All rights reserved.