Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据帧中添加数据_Python_Pandas - Fatal编程技术网

Python 在数据帧中添加数据

Python 在数据帧中添加数据,python,pandas,Python,Pandas,我需要一个数据帧,以便将值传递给bokeh df2 = DataFrame(data=mia_classe,columns=['classe','media','deviazione']) for classe in Classe.objects.all(): risposte = Risposta.objects.filter(prova__classe=classe).values_list('score', flat=True) df2.append({'classe':

我需要一个数据帧,以便将值传递给bokeh

df2 = DataFrame(data=mia_classe,columns=['classe','media','deviazione'])
for classe in Classe.objects.all():
    risposte = Risposta.objects.filter(prova__classe=classe).values_list('score', flat=True)
    df2.append({'classe': classe,'media':media(risposte)*10,'deviazione':sigma(risposte)*10}, ignore_index=True)
print df2
此代码不返回错误,但数据帧为空。 在阅读之后,我也尝试过这种方式:

mia_classe = defaultdict(list)
df2 = DataFrame(data=mia_classe,columns=['classe','media','deviazione'])
for classe in Classe.objects.all():
    risposte = Risposta.objects.filter(prova__classe=classe).values_list('score', flat=True)
    mia_classe = {'classe': classe,'media':media(risposte)*10,'deviazione':deviazione_standard(risposte)*10}
    new_df = pandas.DataFrame.from_dict(mia_classe)
    df2.append(new_df, ignore_index=True)
print df2
下面是错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/allora/testingresso/testingresso/estraicoras.py", line 30, in <module>
    new_df = pandas.DataFrame.from_dict(mia_classe)
  File "//anaconda/envs/test/lib/python2.7/site-packages/pandas/core/frame.py", line 804, in from_dict
    return cls(data, index=index, columns=columns, dtype=dtype)
  File "//anaconda/envs/test/lib/python2.7/site-packages/pandas/core/frame.py", line 226, in __init__
    mgr = self._init_dict(data, index, columns, dtype=dtype)
  File "//anaconda/envs/test/lib/python2.7/site-packages/pandas/core/frame.py", line 363, in _init_dict
dtype=dtype)
  File "//anaconda/envs/test/lib/python2.7/site-packages/pandas/core/frame.py", line 5158, in _arrays_to_mgr
index = extract_index(arrays)
  File "//anaconda/envs/test/lib/python2.7/site-packages/pandas/core/frame.py", line 5197, in extract_index
    raise ValueError('If using all scalar values, you must pass'
ValueError: If using all scalar values, you must pass an index
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Users/allora/testingresso/testingresso/estaricoras.py”,第30行,在
new_df=pandas.DataFrame.from_dict(mia_classe)
文件“//anaconda/envs/test/lib/python2.7/site packages/pandas/core/frame.py”,第804行,摘自
返回cls(数据,索引=索引,列=列,数据类型=数据类型)
文件“//anaconda/envs/test/lib/python2.7/site packages/pandas/core/frame.py”,第226行,在__
mgr=self.\u init\u dict(数据、索引、列、数据类型=dtype)
文件“//anaconda/envs/test/lib/python2.7/site packages/pandas/core/frame.py”,第363行,初始目录
dtype=dtype)
文件“//anaconda/envs/test/lib/python2.7/site packages/pandas/core/frame.py”,第5158行,在_-arrays_-to_-mgr中
索引=提取索引(数组)
文件“//anaconda/envs/test/lib/python2.7/site packages/pandas/core/frame.py”,第5197行,摘录索引
raise VALUERROR('如果使用所有标量值,则必须通过'
ValueError:如果使用所有标量值,则必须传递索引

有什么建议吗?

尝试添加
orient='index'

new_df = pandas.DataFrame.from_dict(mia_classe, orient='index')
用一个即兴的例子:

mia_classe = {'classe': 'classe','media': 100,'deviazione': 150}
new_df = pd.DataFrame.from_dict(mia_classe, orient='index')

                 0
classe      classe
deviazione     150
media          100

问题在于append方法。我误解了pandas引用。 下面是我如何(在同事的帮助下)解决的:

因此,基本上我可以改变观点来解决这个问题:将每个类的名称、平均值和标准差追加到每个类中,将每个名称追加到其他名称中,将每个avg追加到其他avg中,等等

结果听起来是这样的:

    deviazione     media                             nome
0     3.841544  7.614035        1A - piazzi lena perpenti
1     4.457753  6.807576                  1A - otto marzo
2     4.001645  7.602469                 1F - g. ferraris
3     4.133874  7.241026                 1M - g. ferraris
4     4.494765  7.149123       1BS - piazzi lena perpenti

您可以添加吗?谢谢!很遗憾,我们需要精确的列顺序。问题在于appending方法。您发布的错误源于
.from\u dict()
部分,而不是
.append()
方法。
    deviazione     media                             nome
0     3.841544  7.614035        1A - piazzi lena perpenti
1     4.457753  6.807576                  1A - otto marzo
2     4.001645  7.602469                 1F - g. ferraris
3     4.133874  7.241026                 1M - g. ferraris
4     4.494765  7.149123       1BS - piazzi lena perpenti