我有一个带有名为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()
这可能吗?提前谢谢!
答案 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']
等。