将Numpy结构化数组转换为Pandas数据框

4
我从以下代码中获取了一个结构化的numpy数组:
```python ```
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成为可调用的索引,以访问数组“行”中的数据。


你能否提供一个最小化、完整和可验证的示例,并附上预期输出? - fuglede
当然,我会进行编辑。 - QuantumPanda
2个回答

4
通过这个示例,您可以让
df = pd.DataFrame(test).set_index('f0')

通过这样,你可以访问第45行的内容,只需使用df.loc[45]即可。


3
假设您已经执行了import pandas as pd
df = pd.DataFrame(test) # converts your array to a DataFrame.
df = df.set_index('f0') # changes the index to be the first column.

我发布的代码创建了一个numpy结构化数组,我想将这个结构化数组转换成一个pandas数据帧,其中第一列作为数据框的可调用索引。 - QuantumPanda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接