我是Pandas新手,我想创建一个csv文件中的数据的json摘要。这个json摘要将填充我的csv的最后一列,并命名为" Holder"。我的csv文件如下:
pk,Pure_Math,Pure_Math_Notes,Applied_Math,Applied_Math_Notes,Stats,Stats_Notes,Grammar,Grammar_Notes,Lit,Lit_Notes,Holder
1,0,,-1,Good student,0,,-1,Gr8 potential,0,,
2,-1,Fair,0,,0,,0,,-1,Hard worker,
3,-1,Brilliant,-1,Masters material,-1,Outstanding,0,,0,,
对于每门课程,我想连续获取所有数据并将其附加到最后一列。我的代码如下
import pandas as pd
from pandas import DataFrame
import pandas.io.data
import numpy as np
import json
df = pd.read_csv('c:\censored.csv')
col_array = np.array([
["Pure_Math", "Pure_Math_Notes", "Applied_Math", "Applied_Math_Notes", "Stats", "Stats_Notes"],
["Grammar", "Grammar_Notes", "Lit", "Lit_Notes"]
])
a = ''
b = ''
c = ''
df.fillna('')
df.Holder = ''
count = 0
substrategy = 0
for cat in col_array:
count += 1
for innercat in cat:
if "_Notes" in innercat:
b = df[innercat]
#print b
continue
substrategy += 1
c = count
a = substrategy
odata = {}
odata['did'] = a
odata['id'] = a
odata['data'] = {}
#odata['data']['notes'] = b
odata['data']['notes'] = ''
odata['data']['coursecode'] = a
odata['data']['department'] = c
df.loc[df[innercat] == -1, 'Holder'] += json.dumps(odata) + ', '
代码正常工作,直到我取消注释行
#odata['data']['notes'] = b
我收到TypeError: 0 NaN
错误。我相信在json转换期间遇到NaN会导致pandas失败。我该怎么做才能纠正这个问题?
我已尝试将所有NaN值设置为空格,但它无效。