基于动态变量值创建Pandas DataFrame遇NameError问题求助
解决Pandas DataFrame创建时的NameError问题
问题排查
从你给出的代码和报错信息来看,存在明显的矛盾点——你代码里明明用的是int变量,但报错提示name 'interval' is not defined,这大概率是代码拼写错误:你实际写代码的时候,不小心把字典里的[int]写成了[interval],而你根本没定义过interval这个变量,所以触发了NameError。
另外还有个容易忽略的小坑:int是Python的内置类型(用来做整数转换),虽然你可以把它赋值成整数3,但这会覆盖内置的int()函数,后续如果需要用它转换类型的话会出问题,非常不推荐这么做。
修正后的代码
我给你调整了变量名(避免和内置类型冲突),同时统一把字典里的值都改成列表形式(Pandas处理起来更稳妥),代码如下:
# 改用不会和内置类型冲突的变量名 int_val = 3 hours = 2 cost = 20 # 所有字段值都用列表包裹,避免潜在的广播问题 d = {'F': [737], 'INT': [int_val], 'LH': [hours], 'COST': [cost]} df = pd.DataFrame(data=d) print(df)
运行结果
执行后会输出你期望的表格:
F INT LH COST 0 737 3 2 20
额外说明
如果你只是单纯的拼写错误(把int写成了interval),那只要把字典里的interval改回你实际定义的变量名就行,但还是建议你换掉int这个变量名,避免后续踩坑。
内容的提问来源于stack exchange,提问作者PineNuts0
相关产品推荐
相关产品推荐

