如何根据列值对数据帧进行拆分,对字符串值进行排序或分组?

时间:2018-04-06 16:16:34

标签: python pandas dataframe pandas-groupby

对编码和熊猫完全陌生。

for

我想根据df Date Particulars Inwards Code 1 2017-04-01 EFG 12800 01 2 2017-07-22 ABC 100 01 3 2017-09-05 BCD 10000 01 4 2018-03-13 ABC 2000 01 列从df输出3个数据帧,即

输出:    DF1

df['Particulars']

DF2

   Date         Particulars    Inwards  Code

2 2017-07-22         ABC           100      01
4 2018-03-13         ABC           2000     01

DF3

   Date         Particulars    Inwards  Code

1 2017-04-01         EFG           12800    01

我有办法解决这个问题:

   Date         Particulars    Inwards  Code

3 2017-09-05         BCD           10000    01

我初始化 df1 = df1.append(df.loc[df['Particulars'] == 'ABC'], ignore_index=False) 列表并生成数据帧,然后使用Particulars执行上述命令。但我想知道for loopsort是否会有更好的选择?如何应用它们我尝试groupbygroupby但无法获取数据框。

2 个答案:

答案 0 :(得分:3)

您可以通过在详细信息上对df进行分组来创建数据帧字典。

0

现在您可以使用

访问每个df
d = {index: label for index, label in df.groupby('Particulars')}

答案 1 :(得分:2)

词典理解是构建数据的最简洁方法:

d = {k: df[df['Particulars'] == k] for k in df['Particulars'].unique()}

相关:How do I create a variable number of variables?