python-3.x - 为什么我创建熊猫数据框的函数在调用时将 dtype 更改为 none
问题描述
我正在处理 csv 文件,我正在编写没有函数的代码并且它可以工作,尽管在尝试用字符串填充时出现了一些问题,但在我尝试之前除外。由于某种原因,它在创建 while 循环之前不起作用。我的问题是为什么通过读取调用函数时传递的 csv 文件名在函数内部创建的数据框对象返回一个空对象?我想当数据框在内存中时它不会被破坏,我错过了什么?
我的代码:
import pandas as pd
grossmargin = 1.2
def read_wholesalefile(name):
mac = name
apple = pd.read_csv(mac)
apple['price'] = apple['Wholesale'] * grossmargin
while True:
try:
apple.fillna('N/A', inplace=True)
break
except ValueError:
print('Not Valid')
read_wholesalefile('Wholesalelist5182021.csv')
解决方案
对不起,伙计们,我自己弄明白了:我错过了范围,再次为新手感到抱歉。几个月前(去年 12 月)我刚开始用 Python 编码,我正在学习这个过程。
对我有用的是在函数内添加作用域 Global,严重的是我不知道数据帧在函数内表现为变量。
#My Modified code that works
import pandas as pd
grossmargin = 1.2
def read_wholesalefile(name):
global apple
mac = name
apple = pd.read_csv(mac)
apple['price'] = apple['Wholesale'] * grossmargin
while True:
try:
apple.fillna('N/A', inplace=True)
break
except ValueError:
print('Not Valid')
read_wholesalefile('Wholesalelist5182021.csv')
推荐阅读
- ruby - 如何使用 Apps Script API 创建和执行函数
- node.js - 是否可以使用 Node.js 将地图直接保存到磁盘?
- javascript - *可能的未处理承诺拒绝(id:0):类型错误:未定义不是对象(评估'result.cancelled')云图像上传
- node.js - 为 Node.js 和 React.js 部署到 App Engine 设置 app.yaml 文件
- javascript - Web Bluetooth Api - 为什么我无法检测到移动蓝牙
- javascript - 点击标签时防止默认
- python - 无法让格式函数在 python 中工作
- swift - SQLite.Swift:为值不为空的列值获取空值
- javascript - :hover 和 :focus 效果上 flex 内容和边框之间的像素高间隙
- ios - iOS 崩溃 GameObject::IsActive() 常量