Python 具有不等列的数据帧
我有一个数据框,其中一列包含一个分类变量,另一列包含一个连续变量,如下所示:Python 具有不等列的数据帧,python,pandas,dataframe,pivot,Python,Pandas,Dataframe,Pivot,我有一个数据框,其中一列包含一个分类变量,另一列包含一个连续变量,如下所示: gender contVar Male 22379 Female 24523 Female 23421 Male 23831 Male 29234 我想要一张这样的桌子: Male Female 22379 24523 23831 23421 23831 29234 这在熊猫身上可能
gender contVar
Male 22379
Female 24523
Female 23421
Male 23831
Male 29234
我想要一张这样的桌子:
Male Female
22379 24523
23831 23421
23831
29234
这在熊猫身上可能吗?当我这样做时:
df.pivot(index = df.index.tolist(), columns='gender', values='contVar')
我发现索引是越界的(很明显,因为没有行,也有索引,但我也假设它是越界的,因为每列中的行数不相等)。欢迎提出任何想法。您可以:
pd.concat([pd.DataFrame({g:d.contVar.tolist()}) for g,d in df.groupby('gender')], axis=1)
Out[416]:
Female Male
0 24523 22379
1 23421 23831
2 NaN 29234
或者可以得到两个单独的列表吗?我真的不需要表中的数据透视(并用NaN填充空单元格),甚至需要单独的列表。我在这里不使用pivot,我实际上构建了一个数据帧列表(一个用于女性,另一个用于男性),这样您就可以从该列表中访问“单独”的数据帧。
[d.contVar.tolist()对于df.groupby中的g,d('gender')]
这样做会给你一个这样的两个列表的列表[[24523421],[223792383129234]]
[{g:d.contVar.tolist()}对于df.groupby('gender')中的g,d,它会给你一个这样的两个列表[{'Female':[24523421]},{'Male':[223792383129234]}
这确实是一个词汇列表,不清楚OP所说的“两个独立列表”是什么意思