我从以下代码获取结构化的numpy数组:
data = np.genfromtxt(fname, dtype = None, comments = '#', skip_header=1, usecols=(ucols))
其中第一列是按乱序排列(我希望保留)的其余数据集的索引。 我想将结构化数组转换为Pandas数据框,并将加扰的索引作为数据框的可调用索引。
编辑:
import numpy as np
test = np.array([(45,1,'mars',1,1),(67,1,'pluto',1,1),(12,1,'saturn',1,1)],dtype='i,f,U10,i,f')
创建一个numpy结构化数组,调用第一个条目将给出:
In [5]: test[0]
Out[5]: (45, 1., 'mars', 1, 1.)
调用整个数组:
In [6]: test
Out[6]:
array([(45, 1., 'mars', 1, 1.), (67, 1., 'pluto', 1, 1.),
(12, 1., 'saturn', 1, 1.)],
dtype=[('f0', '<i4'), ('f1', '<f4'), ('f2', '<U10'), ('f3', '<i4'), ('f4', '<f4')])
我想将此结构化数组转换为pandas数据框,然后在此示例中,将45,67,12设为可访问索引,以访问数组“行”中的数据。
答案 0 :(得分:1)
如果我对问题的理解正确,那么您成功发布的摘录会创建一个Pandas数据框,并且您要更改结果数据框的索引。您可以更改现有数据的索引数据框及其 .set_index()
方法,向其传递要用作其索引的列的标签。
例如,如果包含所需索引的列称为“加扰”,则应达到以下目的:
data.set_index('scramble')
注意:默认情况下,这将返回带有更新索引的数据框。要改为更改原始数据帧data
,可以在对方法的调用中使用inplace=True
选项。例如:
data.set_index('scramble', inplace=True)
答案 1 :(得分:1)
通过给定的示例,您可以让
create or replace view puntiPerCorso (Categoria,corsoDistudi,puntiTotali) as
select TabellaScore.categoria,TabellaScore.corsostudi, sum(tabellascore.punti) From TabellaScore
group by TabellaScore.categoria,TabellaScore.corsostudi;
create or replace view BestCorso (Categoria,corsoDistudi) as
select puntipercorso.categoria,puntipercorso.corsodistudi From puntipercorso
where puntipercorso.puntitotali = (select max(puntipercorso.puntitotali) from puntipercorso p where
p.categoria = puntipercorso.categoria)
group by puntipercorso.categoria,puntipercorso.corsodistudi;
这样,您可以通过df = pd.DataFrame(test).set_index('f0')
访问索引为45的行。