我想要存储在pandas数据帧上的数据结构可以表示如下:
F1 F2 F3 . . . .
a
b
c
t1
t2
.
.
t18000
x1
x2
.
.
x18000
y
z
当我想要显示行只是为了深入了解数据帧包含的信息时,我不想看到18000个或x个变量。相反,我想要像:[a,b,c,t,x,y,z]
我对Pandas模块并不是很熟悉,所以我的问题是如何存储信息以达到我上面所说的行名称?更具体地说:
我应该将t和x值作为数组存储在一个单元格中吗?
F1 F2 ...
a
b
c
t [t1 t2 .. t18000]
x [x1 x2 .. x18000]
y
z
或者是否有一种固有的方法可以将同一行名称的多个索引可视化为pandas中的一个?
答案 0 :(得分:0)
有几种方法可以做到这一点。您可以使用Multiindex,它可以创建分层索引。例如:
df = pd.DataFrame({'F1': range(4)}, index=[['x', 'x', 'y', 'y'], ['x1', 'x2', 'y1', 'y2']])
将为您提供类似以下的DataFrame:
F1
x x1 0
x2 1
y y1 2
y2 3
您可以简单groupby
级别,例如总之,df.groupby(level=0).sum()
或者,如果您不想拥有索引,则只需使用groupby
中的函数即可。例如,按索引中的第一个字符分组:
df = pd.DataFrame({'F1': range(4)}, index=['x1', 'x2', 'y1', 'y2'])
df.groupby(lambda index: index[0]).sum()