我有一个Streamlit应用程序,它使用Pandas的框架来显示Altair中的图形。
我已经用尽了最可能的原因,但我仍然得到以下错误。
一开始,错误出现在我的代码中:
File "/mnt/c/Users/xxx/Documents/xxx/deps/charts/charts.py", line 131, in show_financial_metrics_competitors_chart
combined_df: pd.DataFrame = pd.DataFrame()
TypeError: 'DataFrame' object is not callable
字符串
为了解决这个问题,我将combined_df: pd.DataFrame = pd.DataFrame()
更改为combined_df = None
,尽管前者似乎是有效的语法。
错误消失,直到依赖库显示错误:
TypeError: 'DataFrame' object is not callable
...
File "/mnt/c/Users/xxx/Documents/xxx/env/lib/python3.9/site-packages/pandas/io/formats/style_render.py", line 1957, in Tooltips
tooltips: DataFrame = DataFrame(),
型
我花了几天时间想找出根本原因。我试过了:
- 降级到Python 3.8->相同问题
- 升级到Python 10->相同的问题
- 检查源数据是否有效,填充DataFrames ->可以确认数据最终填充了这些DataFrames
- 删除
env/
并重新安装requirements.txt ->对Python版本中的每一次更改都这样做,而且还不止一次
以下是我的关键依赖版本:
- Python 3.9.2
- pandas==2.0.3
- 流灯== 1.29
- numpy==1.25.2
- matplotlib==3.7.2
鉴于最新的错误,我认为这不是我的代码,而是某个版本的依赖项,这是根本原因。最奇怪的是,我的Python或deps版本没有改变,这是从上周开始发生的。
1条答案
按热度按时间r8uurelv1#
阅读文档,我认为你必须提供初始数据才能使用DataFrame():
沿着数据,你可以选择性地传递index(行标签)和columns(列标签)参数。如果你传递一个index和/或columns,你保证了结果DataFrame的index和/或columns。因此,一个Series的dict加上一个特定的index将丢弃所有与传递的index不匹配的数据。
尝试先创建数据字典,然后调用类。
字符串
来源:Pandas网