使用理解功能创建Pandas数据帧

时间:2015-10-02 09:29:19

标签: python pandas

我有一个带有名为Dir的列的数据框,其中包含五个值:N,S,E,W和C.我将它们拆分为单独的数据帧,如下所示:

output$bValidData <- reactive ({ … }); 

outputOptions(output, 'bValidData', suspendWhenHidden=FALSE)

但是我想创建一个函数或列表理解来为我这样做,所以如果数据中的值发生变化,我就不必重新编码了。

我已经创建了一个像这样的值的列表:

df_N = df[(df['Dir'] == 'N')]
df_S = df[(df['Dir'] == 'S')]
df_E = df[(df['Dir'] == 'E')]
df_W = df[(df['Dir'] == 'W')]
df_C = df[(df['Dir'] == 'C')]

但是没有大量的Python经验,我正在努力创造一些自动化的东西。我想的是:

CP_Vals = Series.unique(dftc2['iDir']).tolist()

这可能吗?提前谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用字典存储您获得的不同数据帧以及相应的键名称。示例 -

CP_Vals = dftc2['iDir'].unique().tolist()
df_dict = {'df_{}'.format(x): df[(df['iDir'] == x)] for x in CP_Vals}

请注意,词典理解仅适用于Python 2.7+。此外,在此之后,您可以访问特定的DataFrame作为df_dict['df_N']等。