首页 > 解决方案 > 为什么我创建熊猫数据框的函数在调用时将 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') 

标签: python-3.xpandasdataframefunctiondtype

解决方案


对不起,伙计们,我自己弄明白了:我错过了范围,再次为新手感到抱歉。几个月前(去年 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') 


推荐阅读