为每个filter Python创建多个新数据表

2024-07-05 14:10:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个datatable,我想通过它进行过滤,并创建多个表,每个表的名称对应于python中的过滤器

Name Cury Sal
Jim   e    3
jack  y    2
lop   e    1
elis  i    5
ope   e    7

我们的目标是从这个表中创建3个不同的表,使用Cury column作为过滤器,每个表名为Cury(filter)


Tags: name名称过滤器目标columnfilterjackjim
2条回答

试试这个:

import pandas as pd
Name = ["Jim", "jack", "lop", "elis", "ope"]
Cury = ["e", "y", "e", "i", "e"]
Sal = [3, 2, 1, 5, 7]

df = pd.DataFrame(data={"Name" : Name, "Cury": Cury, "Sal": Sal})
uniqueCury = df.Cury.unique()
df_list = [df.loc[df.Cury == el] for el in uniqueCury]

因此,您将得到一个数据帧列表,按照“Cury”列的唯一值进行拆分:

>>> df_list[0]
  Cury Name  Sal
0    e  Jim    3
2    e  lop    1
4    e  ope    7

下面是一种使用exec()函数的方法:

for value in df['Cury'].unique():
    exec("Cury_{0} = df[df.Cury == '{0}']".format(value))

输出:

print(Cury_e)

  Cury Name Sal
0    e  Jim   3
2    e  lop   1
4    e  ope   7

相关问题 更多 >