【发布时间】:2015-09-10 00:54:35
【问题描述】:
我正在尝试创建一个采用已格式化的函数 json.loads()。
def data_fp(fp):
for line in fp:
try:
data=json.loads(line)
json_data.append(data)
except:
continue
我拿了 json_data 并试图清理它。我创建了一个空白数据框并制作了一个函数。
df=pd.DataFrame()
def data_clean(liste):
df['col1'] = map(lambda datas: datas['col1'] if 'col1' in datas else 'NA', liste)
df['col2'] = map(lambda datas: datas['col2'] if 'col2' in datas else 'NA', liste)
df=df[df['col2']=='foo']
问题出在最后一行。当我将它包含在函数中时,我得到一个错误
UnboundLocalError:之前引用的局部变量“df” 作业
但是当我运行没有最后一行的函数时,我没有收到任何错误,我可以在控制台中运行 == 行并获得所需的结果。
为什么在函数中不起作用?
【问题讨论】:
标签: python pandas global-variables dataframe